Groupby and Pivot Pandas table

前端 未结 1 790
不知归路
不知归路 2021-01-19 03:53

This should be quick, but none of the pivot/groupby work I\'m doing is coming up with what I need.

I have a table like this:

        Letter  Period           


        
相关标签:
1条回答
  • If I understand you correctly,pivot_table might be closer to what you need:

    df = df.pivot_table(index=["YrMnth", "Letter"], columns="Period", values="Amount")
    

    Which gives you:

    Period          1   3   4   5   6   7   8   9   10  11  12
    YrMnth  Letter                                            
    2014-12 B      NaN NaN NaN NaN   0 NaN NaN NaN NaN NaN NaN
            C      NaN NaN NaN NaN   4   6   1   2   3   7   5
            D       10  17  16 NaN  12  14  11   8   9  15  13
    2015-01 B       20  25 NaN  26  23  18  19  24  21  22 NaN
            C      NaN NaN NaN NaN NaN NaN NaN NaN  27 NaN NaN
    

    As suggested in the comments:

     df = pd.pivot_table(df, index=["YrMnth", "Letter"], columns="Period", values="Amount")
    
    
    Period          1   3   4   5   6   7   8   9   10  11  12
    YrMnth  Letter                                            
    2014-12 B      NaN NaN NaN NaN   0 NaN NaN NaN NaN NaN NaN
            C      NaN NaN NaN NaN   4   6   1   2   3   7   5
            D       10  17  16 NaN  12  14  11   8   9  15  13
    2015-01 B       20  25 NaN  26  23  18  19  24  21  22 NaN
            C      NaN NaN NaN NaN NaN NaN NaN NaN  27 NaN NaN
    

    Also yields the same, if someone wants to clarify how the former will fail that would be great.

    0 讨论(0)
提交回复
热议问题