我有一个熊猫数据框,其中列COLOR
包含分类数据-
ZIP YEAR COLOR
11111 1990 0
11111 1990 1
11111 2000 1
11111 2000 1
22222 1990 0
22222 1990 0
22222 2000 0
22222 2000 1
我如何通过ZIP
和YEAR
列(df.groupby(['ZIP', 'YEAR'])
)汇总数据,并以每种类别的百分比计算类别数据,以使结果类似于下面的数据框?
ZIP YEAR COLOR
0 1
11111 1990 50 50
2000 0 100
22222 1990 100 0
2000 50 50
尝试:
df.groupby(["ZIP", "YEAR"])["COLOR"].value_counts(normalize=True).mul(100).unstack("COLOR").fillna(0)
输出:
COLOR 0 1
ZIP YEAR
11111 1990 50.0 50.0
2000 0.0 100.0
22222 1990 100.0 0.0
2000 50.0 50.0