我有一个如下所示的数据框ID | Value1 | A1 | B1 | C2 | B2 | C我想创建一个基于值的对称矩阵: A B C A 1 1 1 B 1 2 2 C 1 2 2这基本上表明有多少人同时拥有这两个值 (v1,v2)。我目前正在使用 for 循环来扫描每个组合的数据框,但想知道是否有更简单的方法使用 Pandas 来完成。
1 回答
阿晨1998
TA贡献2037条经验 获得超6个赞
使用merge with cross join by IDcolumn with crosstabandDataFrame.rename_axis删除索引和列名:
df = pd.merge(df, df, on='ID')
df = pd.crosstab(df['Value_x'], df['Value_y']).rename_axis(None).rename_axis(None, axis=1)
print (df)
A B C
A 1 1 1
B 1 2 2
C 1 2 2
添加回答
举报
0/150
提交
取消