我有一個數據框df如下:CA Amount Payment_Mode Trans 1001 230 Non-Digi Normal1001 330 Website Normal1001 40 Website PPI1002 100 Card PPI1002 700 Website PPI1002 100 Card Normal現在我想要一個df_f如下的結果數據框,其中按列捕獲Payment_Mode計數和計數:TransCA Amount Non-Digi Website Card Normal PPI1001 600 1 2 0 2 11002 900 0 1 2 1 2我的方法:df_1 = df.groupby(['CA']).agg(Amount = ('Amount','sum'), Payment_Mode = ('Payment_Mode','count'), Trans = ('Trans','count')).reset_index()df_f = df_1.pivot(index='CA', columns = 'Payment_Mode', values = '???') <-- This is where I am stuck對此有任何線索嗎?
1 回答
HUX布斯
TA貢獻1876條經驗 獲得超6個贊
首先使用DataFrame.meltwithDataFrame.pivot_table然后添加聚合總和列:
df_1 = (df.groupby('CA').sum()
.join(df.melt(id_vars='CA',value_vars=['Payment_Mode','Trans'])
.pivot_table(index='CA', columns='value', values = 'variable',aggfunc='count', fill_value=0))
.reset_index())
print (df_1)
CA Amount Card Non-Digi Normal PPI Website
0 1001 600 0 1 2 1 2
1 1002 900 2 0 1 2 1
添加回答
舉報
0/150
提交
取消
