迭代Python中的一系列时间戳

时间:2016-09-09 14:19:41

标签: python date pandas

我有一个数据帧df:

TIMESTAMP equipement1 equipement2
2016-05-10 13:20:00 0.000000 0.000000
2016-05-10 14:40:00 0.400000 0.500000
2016-05-10 15:20:00 0.500000 0.500000

我试图通过5分钟的步骤迭代时间戳。 我尝试:pd.date_range(start, end, freq='5 minutes')

但我遇到了时间戳格式的问题。

  

" ValueError:无法评估5分钟"

有什么想法可以帮我解决这个问题吗?

谢谢

1 个答案:

答案 0 :(得分:3)

首先,确保您的TIMESTAMP列是日期时间而不是字符串(例如df['TIMESTAMP'] = pd.to_datetime(df.TIMESTAMP))。

接下来,使用此列作为数据帧的索引。要使这个永久化,df.set_index('TIMESTAMP,inplace = True)`。

现在您可以resample查看任何给定频率(例如30min)并使用不同的聚合方法,例如summean(默认值),lambda函数等等。)

或者,您可以添加.fillna(0)以用零替换NaN。

>>> df.set_index('TIMESTAMP').resample('30min', how='sum')

                     equipement1  equipement2
TIMESTAMP                                    
2016-05-10 13:00:00          0.0          0.0
2016-05-10 13:30:00          NaN          NaN
2016-05-10 14:00:00          NaN          NaN
2016-05-10 14:30:00          0.4          0.5
2016-05-10 15:00:00          0.5          0.5