【发布时间】:2016-11-30 12:07:09
【问题描述】:
我有多个带有日期列的数据框。我想将这些数据框按日期列分组 5 天。通常这样的事情是有效的:
df = pd.DataFrame([['2016-11-01 09:21:07', 10], ['2016-09-14 02:46:01', 21], ['2016-08-11 03:26:33', 14], ['2016-10-17 14:20:44', 14]],
columns=['DateCol', 'Values'])
df['DateCol'] = pd.to_datetime(df['DateCol'])
df.set_index('DateCol').groupby(pd.TimeGrouper('5D')).mean()
但是,当我使用 pd.TimeGrouper 时,它会根据我应用它的数据框创建组。如果我在两个不同的数据帧上执行此操作,则会产生不同的组。
我想按相同的组对多个数据帧进行分组。
我尝试使用pd.cut,但它不适用于日期时间列。 pd.cut(df['DateCol'], 10) 给我TypeError。
理想情况下,我想做这样的事情:
pd.groupby(df, pd.cut(df['DateCol'], pd.date_range(start='1/1/2016', end='1/1/2017', freq='5D')))
换句话说,我需要按特定日期范围对我的数据框进行分组。
【问题讨论】: