私は基本的なパンダでなければならないことを知りたいと思っていますが、それを理解するために私の頭脳を磨いています。私は、各グループの割合および数は、グループBYSの任意のレベルのために利用できるようにしたい:pandas groupby数と割合
import pandas as pd
df = pd.DataFrame({'A': [1, 0, 1, 0, 1, 0, 0, 0], 'B': ['A'] * 4 + ['B'] * 4})
gb = df.groupby(['A', 'B']).size()
prop_gb = gb/gb.groupby(level=0).sum()
prop_gb
は今です:
prop_gb
Out[116]:
A B
0 A 0.400000
B 0.600000
1 A 0.666667
B 0.333333
dtype: float64
私は最終的にこれをしたい、しかし:
A B prop count
0 A 0.400000 2
B 0.600000 3
1 A 0.666667 2
B 0.333333 1
2つのpandas.Series
オブジェクトをマージしようとしました。gb
とprop_gb
を辞書に変換して「結合」しますが、
desired = {k: (v, prop_gb.to_dict()[k]) for k, v in gb.to_dict().items()}
desired
{(0, 'A'): (2, 0.40000000000000002),
(0, 'B'): (3, 0.59999999999999998),
(1, 'A'): (2, 0.66666666666666663),
(1, 'B'): (1, 0.33333333333333331)}