首页 > 解决方案 > 重塑熊猫df:将值行转换为布尔矩阵

问题描述

有一个熊猫数据框:

id, key
1, A
1, B
1, B
1, C
2, C

我希望它看起来像这样(其中 1/0 是数据中的真/假外观):

id, A, B, C
1, 1, 1, 1
2, 0, 0, 1

标签: pythonpandas

解决方案


drop_duplicatesgroupby,size和一起使用unstack

df = df.drop_duplicates().groupby(['id', 'key']).size().unstack(fill_value=0)
print (df)
key  A  B  C
id          
1    1  1  1
2    0  0  1

get_dumeswith set_indexand maxby index- if multiple1总是返回1

df = pd.get_dummies(df.set_index('id')['key']).max(level=0)
print (df)
    A  B  C
id         
1   1  1  1
2   0  0  1

推荐阅读