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