データ フレームにピボット テーブルがあり、グループの割合を計算したいと考えています。
私は元のデータを除外しましたが、それがあることを期待しており、これらの列を追加する必要があることを知っています.
これを行うために合計を追加する必要がある場合は、後で結果をフィルタリングするので、それも問題ありません。
データ フレームにピボット テーブルがあり、グループの割合を計算したいと考えています。
私は元のデータを除外しましたが、それがあることを期待しており、これらの列を追加する必要があることを知っています.
これを行うために合計を追加する必要がある場合は、後で結果をフィルタリングするので、それも問題ありません。
あなたの例は、インデックスにあるものとないものを実際には示していません。
独自のデータセットを作成しました:
df = pd.DataFrame({'country':["NL"]*9, 'team':["A"]*3+["B"]*3+["C"]*3, 'outcome':["WIN", "LOSE", "DRAW"] * 3, 'week1':[2,3,4,4,5,2,4,4,2], 'week2':[3,2,5,2,3,4,2,3,4], 'week3':[4,5,2,3,2,5,3,2,5]})
df.set_index(['country', 'team'], inplace=True)
私もチームCを作ったことに注意してください。チームBが2人だから意味がない。間違いだと思いました。
私の例では、次のように簡単に実行できます。
df_percent = df / df.groupby(level=[0,1]).sum()
df_percent['outcome'] = df['outcome']
outcome week1 week2 week3
country team
NL A WIN 0.222222 0.300000 0.363636
A LOSE 0.333333 0.200000 0.454545
A DRAW 0.444444 0.500000 0.181818
B WIN 0.363636 0.222222 0.300000
B LOSE 0.454545 0.333333 0.200000
B DRAW 0.181818 0.444444 0.500000
C WIN 0.400000 0.222222 0.300000
C LOSE 0.400000 0.333333 0.200000
C DRAW 0.200000 0.444444 0.500000