根据工作时间选择熊猫数据框行

时间:2020-04-16 18:45:42

标签: python pandas datetime

我的数据框的索引每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,为什么要这样做?

2 个答案:

答案 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的元素。

相关问题