2017-10-24 16 views
0

ピボットテーブルを作成することはできますが、小計は取得できません。私は壮大な列の合計と行の合計を取得しますが、間には小計はありません。小計を含むピボットテーブルを作成し、Python Pandasの親合計の割合を取得

例:Pythonで作成したピボットが次のような場合は、BU:AとRegion:APACの小計を取得したいと思います。同様にBU:AとRegion:EUなどの小計。助けてください。

表:

BU Region Level Jan  Feb  Mar 
A APAC  1  value value value 
       2  value value value 
       3  value value value 
    EU  1  value value value 
       2  value value value 
       3  value value value 
    NA  1  value value value 
       2  value value value 
       3  value value value 
B APAC  1  value value value 
       2  value value value 
       3  value value value 
    EU  1  value value value 
       2  value value value 
       3  value value value 
    NA  1  value value value 
       2  value value value 
       3  value value value 

答えて

1

使用GROUPBYとピボットテーブルよりpd.concatすなわち

x = df.groupby(level=['BU','Region']).apply(sum).assign(Level='Total') 
# if BU and Region is not index then use df.groupby(['BU,'Region'])... 
# if the values are numbers then `.sum()` than `.apply(sum)` 
ndf = pd.concat([df,x]).sort_index() 

出力:

 
      Level    Jan    Feb    Mar 
BU Region
A APAC 1 value value value APAC 2 value value value APAC 3 value value value APAC Total valuevaluevalue valuevaluevalue valuevaluevalue EU 1 value value value EU 2 value value value EU 3 value value value EU Total valuevaluevalue valuevaluevalue valuevaluevalue NaN 1 value value value NaN 2 value value value NaN 3 value value value B APAC 1 value value value APAC 2 value value value APAC 3 value value value APAC Total valuevaluevalue valuevaluevalue valuevaluevalue EU 1 value value value EU 2 value value value EU 3 value value value EU Total valuevaluevalue valuevaluevalue valuevaluevalue NaN 1 value value value NaN 2 value value value NaN 3 value value value

+1

あなたは私が、その後変更異なる機能のために適用されます使用していた@jezraelありがとうそれは合計する:) – Dark

+0

そして、それは文字列であるので、それはちょうどnanを与える。だから私はここに適用し続ける。 – Dark

関連する問題