我有一个熊猫数据框,它的列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
import pandas as pd
df = pd.DataFrame([{11111, 1990, 0},
{11111, 1990, 1},
{11111, 2000, 1},
{11111, 2000, 1},
{22222, 1990, 0},
{22222, 1990, 0},
{22222, 2000, 0},
{22222, 2000, 1}]
, columns=["ZIP", "YEAR", "COLOR"]
)
发布于 2020-02-16 22:41:14
尝试:
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
https://stackoverflow.com/questions/60253710
复制相似问题