Python 熊猫按日期分组

Python 熊猫按日期分组,python,pandas,pandas-groupby,Python,Pandas,Pandas Groupby,我正在尝试将一个熊猫数据帧分组为两天的存储桶。例如,如果我执行以下操作: df = pd.DataFrame() df['action_date'] = ['2017-01-01', '2017-01-01', '2017-01-03', '2017-01-04', '2017-01-04', '2017-01-05', '2017-01-06'] df['action_date'] = pd.to_datetime(df['action_date'], format="%Y-%m-%d") d

我正在尝试将一个熊猫数据帧分组为两天的存储桶。例如,如果我执行以下操作:

df = pd.DataFrame()
df['action_date'] = ['2017-01-01', '2017-01-01', '2017-01-03', '2017-01-04', '2017-01-04', '2017-01-05', '2017-01-06']
df['action_date'] = pd.to_datetime(df['action_date'], format="%Y-%m-%d")
df['user_name'] = ['abc', 'wdt', 'sdf', 'dfe', 'dsd', 'erw', 'fds']
df['number_of_apples'] = [1,2,3,4,5,6,2]
df = df.groupby(['action_date', 'number_of_apples']).sum()
我得到了一个数据帧,它按action\u date和每天苹果的数量进行分组

然而,如果我想在两天内查看数据帧,我怎么能这样做呢?然后,我想通过为2017-01-01和2017-01-03日期创建新的数据框,为2017-01-04和2017-01-05创建另一个数据框,然后为2017-01-06创建最后一个数据框,或者仅通过重新组合和在其中工作来分析每个数据块的数据框数量

编辑:我最终想根据每天区块的苹果数量列出用户列表,所以不想得到每天区块的苹果总数或平均数。抱歉搞混了


提前谢谢你

尝试使用
TimeGrouper
分组两天

>>df.index=df.action_date
>>dg = df.groupby(pd.TimeGrouper(freq='2D'))['user_name'].apply(list) # 2 day frequency
>>dg.head()

action_date
2017-01-01         [abc, wdt]
2017-01-03    [sdf, dfe, dsd]
2017-01-05         [erw, fds]
您可以使用:

编辑:


非常感谢。这确实有效,但我的问题不够清楚-请查看我上面的编辑,对不起!看我的编辑——我看你已经接受了上面的答案,但这是另一种方式!非常感谢。这也行,但不是我要找的-对不起,我不清楚!请看我的编辑。很高兴能帮上忙,天气真好!
print (df.resample('2D', on='action_date')['number_of_apples'].sum().reset_index())
  action_date  number_of_apples
0  2017-01-01                 3
1  2017-01-03                12
2  2017-01-05                 8
print (df.resample('2D', on='action_date')['user_name'].apply(list).reset_index())
  action_date        user_name
0  2017-01-01       [abc, wdt]
1  2017-01-03  [sdf, dfe, dsd]
2  2017-01-05       [erw, fds]