私はこの解決策を知っていますが、提案された解決策は三方テーブルでは機能しません。3方向テーブルでpandasクロス集計を使用して行のパーセンテージを取得する方法は?
次の表検討:各topgroup内で、Iは、行パーセントを取得したいと思い、ここ
df = pd.DataFrame({'A' : ['one', 'one', 'two', 'three'] * 6,
'B' : ['A', 'B', 'C'] * 8,
'C' : ['foo', 'foo', 'foo', 'bar', 'bar', 'bar'] * 4})
pd.crosstab(df.A,[df.B,df.C],colnames=['topgroup','bottomgroup'])
Out[89]:
topgroup A B C
bottomgroup bar foo bar foo bar foo
A
one 2 2 2 2 2 2
three 2 0 0 2 2 0
two 0 2 2 0 0 2
を(A、B及びC)。
%を合計する必要があるため、apply(lambda x: x/sum(),axis=1)
を使用すると、各グループがの範囲内にあるため、失敗します。
アイデア?
は 'このちょうど' CT/ct.sum(軸= 1、レベル= 0)ではないですか?ここで 'ct'はあなたの' crosstab'です – EdChum