TypeError:仅当dtype为datetime64 [ns]时对DatetimeIndex,TimedeltaIndex或PeriodIndex有效

时间:2018-10-12 06:35:12

标签: python pandas datetime dataframe sampling

我在Python中有一个pandas数据框,其列如下:

 df.Timestamp
...   ..................
129   2018-09-12 21:40:00
130   2018-09-12 21:50:00
131   2018-09-12 22:00:00
132   2018-09-12 22:10:00
133   2018-09-12 22:20:00
134   2018-09-12 22:30:00
135   2018-09-12 22:40:00
136   2018-09-12 22:50:00
137   2018-09-12 23:00:00
138   2018-09-12 23:10:00
139   2018-09-12 23:20:00
140   2018-09-12 23:30:00
141   2018-09-12 23:40:00
142   2018-09-12 23:50:00
Name: Timestamp, dtype: datetime64[ns]

单个元素的类型为:

type(df.Timestamp[0])
datetime.datetime

当我尝试重采样时,发生以下错误:

df.Timestamp.resample('2H')
  

TypeError:仅对DatetimeIndex,TimedeltaIndex或PeriodIndex有效

我尝试过pd_todatetime,但是它不起作用。 据我所知,我的数据类型是正确的,因为它是datetime.datetime 我查看的所有解决方案都没有针对此类问题的答案。

有什么解决方案?

1 个答案:

答案 0 :(得分:3)

有2种可能的解决方案-resample中的参数on或由set_index创建DatetimeIndex

最后添加一些聚合函数,例如summean ...:

df.resample('2H', on='Timestamp').sum()

df.set_index('Timestamp').resample('2H').sum()