我想要做的事情,我知道必須是基本的熊貓,但我正在絞盡腦汁想出來。我希望每個組的比例和計數可用於分組依據的任意級別:熊貓羣體數量和比例
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
我試過將兩個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)}