Python分组转置
我的数据保存在一个数据框中Python分组转置,python,python-3.x,pandas,Python,Python 3.x,Pandas,我的数据保存在一个数据框中 out[1]: NAME STORE AMOUNT 0 GARY GAP 20 1 GARY GAP 10 2 GARY KROGER 15 3 ASHLEY FOREVER21 30 4 ASHLEY KROGER 10 5 MARK GAP 10 6 ROGER KROGER
out[1]:
NAME STORE AMOUNT
0 GARY GAP 20
1 GARY GAP 10
2 GARY KROGER 15
3 ASHLEY FOREVER21 30
4 ASHLEY KROGER 10
5 MARK GAP 10
6 ROGER KROGER 30
我试图按名称进行分组,计算它们的总花费,同时为dataframe中的每个唯一存储生成列。
期望的:
谢谢你的帮助 您需要:
通过groupby
和sum
进行聚合的替代解决方案:
df1 = df.groupby(['NAME','STORE'])['AMOUNT'].sum().unstack(fill_value=0)
print (df1)
STORE FOREVER21 GAP KROGER
NAME
ASHLEY 30 0 10
GARY 0 30 15
MARK 0 10 0
ROGER 0 0 30
最后,如果需要,从索引值中删除列并删除列和索引名称:
print (df1.reset_index().rename_axis(None, axis=1).rename_axis(None))
NAME FOREVER21 GAP KROGER
0 ASHLEY 30 0 10
1 GARY 0 30 15
2 MARK 0 10 0
3 ROGER 0 0 30
感谢您的快速和有益的回应!
df1 = df.groupby(['NAME','STORE'])['AMOUNT'].sum().unstack(fill_value=0)
print (df1)
STORE FOREVER21 GAP KROGER
NAME
ASHLEY 30 0 10
GARY 0 30 15
MARK 0 10 0
ROGER 0 0 30
print (df1.reset_index().rename_axis(None, axis=1).rename_axis(None))
NAME FOREVER21 GAP KROGER
0 ASHLEY 30 0 10
1 GARY 0 30 15
2 MARK 0 10 0
3 ROGER 0 0 30