使用熊猫按给定的时间间隔对日期进行分组和处理

时间:2020-10-20 13:41:10

标签: python pandas numpy dataframe time-series

我有一个大型数据框,其中包含几个月的数据,我需要在31天的每一天之间在[09:00:00-11:59:59]之间处理数据。

数据帧(df)的结构如下:

id,date,value
5,2012-03-01 00:00:00,0
2,2012-03-01 00:00:00,0
3,2012-03-01 00:00:00,0
1,2012-03-01 00:00:00,0
4,2012-03-01 00:00:00,0

我可以使用以下方法轻松过滤[09:00:00-11:59:59]之间的数据帧:

indx = pd.DatetimeIndex(df['date'])
df1 = df.iloc[indx.indexer_between_time('09:00:00','11:59:59')]

我还可以使用以下方式对每天的数据框进行分组:

df['date'] = pd.to_datetime(df['date'])
df_grouped = df.groupby([df['date'].dt.date])
df_list = []
for idx, data in df_grouped:
    df_list.append(data)

如何将它们结合在一起以获取仅包含[09:00:00-11:59:59]之间数据的数据帧列表。目的是循环遍历具有[09:00:00-11:59:59]数据的数据帧,并将每个数据帧传递给某个函数以进行进一步处理:

1 个答案:

答案 0 :(得分:1)

您已经有df1,现在按此分组:

df_grouped = df1.groupby(pd.to_datetime(df1['date']).dt.date) )
df_list = [d for _,d in df_grouped]