1 回答
TA贡献1856条经验 获得超17个赞
您的错误消息以Only valid with DatetimeIndex ,...开头。
因此,在将时间戳列转换为datetime后,从中创建一个DatetimeIndex(并保存它以供将来使用):
ind = pd.DatetimeIndex(pd.to_datetime(df.timestamp))
结果是:
DatetimeIndex(['2017-01-03 08:30:00-06:00', '2017-01-03 08:30:32-06:00',
'2017-01-03 08:30:42-06:00', '2017-01-03 08:30:46-06:00',
'2017-01-03 08:30:52-06:00'],
dtype='datetime64[ns, pytz.FixedOffset(-360)]', name='timestamp', freq=None)
或者也许您应该根据上述公式在 DataFrame 中设置索引:
wrk = df.set_index(pd.DatetimeIndex(pd.to_datetime(df.timestamp)))\
.drop(columns=['timestamp'])
然后重新索引它(使用一些聚合函数),例如:
wrk.resample('15s').sum()
我将源df创建为:
timestamp amount
0 2017-01-03 08:30:00-06:00 12
1 2017-01-03 08:30:32-06:00 14
2 2017-01-03 08:30:42-06:00 17
3 2017-01-03 08:30:46-06:00 19
4 2017-01-03 08:30:52-06:00 23
并得到以下结果:
amount
timestamp
2017-01-03 08:30:00-06:00 12
2017-01-03 08:30:15-06:00 0
2017-01-03 08:30:30-06:00 31
2017-01-03 08:30:45-06:00 42
添加回答
举报