簡體   English   中英

Pandas groupby 然后pivot 沒有返回所需的輸出

[英]Pandas groupby and then pivot is not returning the desired output

我有一個數據框df如下:

CA          Amount    Payment_Mode    Trans    
1001        230       Non-Digi        Normal
1001        330       Website         Normal
1001         40       Website         PPI
1002        100       Card            PPI
1002        700       Website         PPI
1002        100       Card            Normal

現在,我希望有一個結果數據幀df_f如下,其中Payment_Mode計數和Trans計數方向列被捕獲:

CA          Amount     Non-Digi     Website     Card     Normal    PPI
1001        600          1             2          0        2        1
1002        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

這有什么線索嗎?

使用DataFrame.meltDataFrame.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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM