我的数据框的索引每3分钟间隔一次:
Timestamp value
2019-06-30 07:00:00 0.065248
2019-06-30 07:03:00 0.067896
2019-06-30 07:06:00 0.070529
2019-06-30 07:09:00 0.073034
2019-06-30 07:12:00 0.085928
...
2019-06-30 16:48:00 0.246681
2019-06-30 16:51:00 0.246745
2019-06-30 16:54:00 0.247110
2019-06-30 16:57:00 0.247174
2019-06-30 17:00:00 0.246338
我需要每隔一小时选择一条线图。
我的愚蠢解决方案是:
hour_ls = ['2019-06-30 07:00:00', '2019-06-30 08:00:00','2019-06-30 09:00:00','2019-06-30 10:00:00',
'2019-06-30 11:00:00','2019-06-30 12:00:00','2019-06-30 13:00:00','2019-06-30 14:00:00',
'2019-06-30 13:00:00','2019-06-30 16:00:00','2019-06-30 17:00:00']
hour_ls = [pd.to_datetime(i) for i in hour_ls]
df.loc[hour_ls]
有没有Pythonic \ pandeic,为什么要这样做?
答案 0 :(得分:3)
您可以使用floor
查找小时,然后检查索引是否等于小时:
df[df.index == df.index.floor('H')]
答案 1 :(得分:0)
将列转换为datetime元素后,您现在可以访问datetime.minute。示例:假设您具有上述数据框df:
df['Timestamp'] = pd.to_datetime(df['Timestamp'])
hourly_entries = pd.DataFrame([el for el in df['Timestamp'] if el.minute == 0])
这将创建一个名为“ hourly_entries”的新数据框,其中将包含所有具有datetime.minute == 0的元素。