0

特定のデータをリサンプリングしているときに、パンダが最初の行を削除するという問題があります。以下の例を参照してください。最後のタイムスタンプを 1 秒進めると、期待どおりに機能することに注意してください。

私はパンダ0.10.1を使用しています

import pandas as pd

from datetime import datetime
from StringIO import StringIO


f = StringIO('''\
time,value
2011-06-03 00:00:05,0
2011-06-03 00:01:05,1
2011-06-03 00:02:05,2
''')

series = pd.read_csv(f, parse_dates=True, index_col=0)['value']

print series
# time
# 2011-06-03 00:00:05    0
# 2011-06-03 00:01:05    1
# 2011-06-03 00:02:05    2
# Name: value

# Problem resampling: 1st sample is missing

print series.resample('s')
# time
# 2011-06-03 00:00:06   NaN
# 2011-06-03 00:00:07   NaN
# 2011-06-03 00:00:08   NaN
# 2011-06-03 00:00:09   NaN
# ...
# 2011-06-03 00:01:52   NaN
# 2011-06-03 00:02:03   NaN
# 2011-06-03 00:02:04   NaN
# 2011-06-03 00:02:05     2
# 2011-06-03 00:02:06   NaN
# Freq: S, Name: value, Length: 121
4

1 に答える 1

0

クローズド パラメータのデフォルトは 0.11 で変更されました。こちらを参照してください。そこにもバグがあったかどうかはわかりません。閉じた間隔を指定してみることができます。

現在の pandas のバージョンは 0.12 です (0.13 は近日公開予定)。最善の策は、アップグレードすることです。

0.12から。大丈夫そうです。デフォルトはclosed='left'です

In [11]: df
Out[11]: 
                     value
time                      
2011-06-03 00:00:05      0
2011-06-03 00:01:05      1
2011-06-03 00:02:05      2

In [12]: df.index
Out[12]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[2011-06-03 00:00:05, ..., 2011-06-03 00:02:05]
Length: 3, Freq: None, Timezone: None

In [13]: df.resample('1s')
Out[13]: 
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 121 entries, 2011-06-03 00:00:05 to 2011-06-03 00:02:05
Freq: S
Data columns (total 1 columns):
value    3  non-null values
dtypes: float64(1)

In [14]: df.resample('1s').head()
Out[14]: 
                     value
time                      
2011-06-03 00:00:05      0
2011-06-03 00:00:06    NaN
2011-06-03 00:00:07    NaN
2011-06-03 00:00:08    NaN
2011-06-03 00:00:09    NaN
于 2013-09-27T12:07:48.483 に答える