Python 使用日期列按月、周分组
我有一个包含以下列的数据框:Python 使用日期列按月、周分组,python,pandas,Python,Pandas,我有一个包含以下列的数据框: user,dates,quantity,location 而我想的是有用的分组程序 pd.to_numeric(x['quantity'], errors='coerce').groupby(x['user']).sum().reset_index() 给出了: user quanity 0 user_01 8900.0 1 user_02 0.0 2 user_03 0.0 3 user_04
user,dates,quantity,location
而我想的是有用的分组程序
pd.to_numeric(x['quantity'], errors='coerce').groupby(x['user']).sum().reset_index()
给出了:
user quanity
0 user_01 8900.0
1 user_02 0.0
2 user_03 0.0
3 user_04 232.0
4 user_05 21.0
5 user_06 110.0
6 user_07 240.0
7 user_08 20500.0
我如何做到这一点,包括位置
和日期
示例:能够在每周检查或每月检查之间轻松切换
注意:“日期”列为对象类型
样本数据
dates user quantity location
0 2018-09-03 user_01 23 GR
1 2018-09-03 user_01 - GR
2 2018-09-03 user_02 3 SW
3 2018-09-03 user_03 - POR
4 2018-09-03 user_04 222 PAN
5 2018-09-03 user_04 - PAN
您可以按多列分组并聚合
sum
:
x['quantity'] = pd.to_numeric(x['quantity'], errors='coerce')
df = x.groupby(['dates','user','location'], as_index=False)['quantity'].sum()
print (df)
dates user location quantity
0 2018-09-03 user_01 GR 23.0
1 2018-09-03 user_02 SW 3.0
2 2018-09-03 user_03 POR 0.0
3 2018-09-03 user_04 PAN 222.0
编辑:您可以通过MS
月初使用-检查:
或者使用或者
或
:
您可以添加一些具有预期输出的示例输入数据吗?好的,请稍等。如果我在问题中复制它们,或者您想要一个文件,那么就足够了吗?最好是将示例数据添加到问题中。e、 g.5行。见问题中的更新。我需要每周、每月进行检查,诸如此类的事情。如有需要,按月分组,在日期(09)的第二部分分组。清楚了吗?我如何在周、月等进行此操作?按月检查,这是九月?是否可以将09改为九月?当然,将
x['dates'].dt.month
改为x['dates'].dt.strftime('%b')
,检查daymm。这太神奇了。
x['dates'] = pd.to_datetime(x['dates'])
x['quantity'] = pd.to_numeric(x['quantity'], errors='coerce')
df = (x.groupby([pd.Grouper(key='dates', freq='MS'),'user','location'])['quantity']
.sum()
.reset_index())
print (df)
dates user location quantity
0 2018-09-01 user_01 GR 23.0
1 2018-09-01 user_02 SW 3.0
2 2018-09-01 user_03 POR 0.0
3 2018-09-01 user_04 PAN 222.0
df = x.groupby([x['dates'].dt.month,'user','location'])['quantity'].sum().reset_index()
print (df)
dates user location quantity
0 9 user_01 GR 23.0
1 9 user_02 SW 3.0
2 9 user_03 POR 0.0
3 9 user_04 PAN 222.0