我有一個(gè)如下所示的數(shù)據(jù)框ID | Value1 | A1 | B1 | C2 | B2 | C我想創(chuàng)建一個(gè)基于值的對(duì)稱矩陣: A B C A 1 1 1 B 1 2 2 C 1 2 2這基本上表明有多少人同時(shí)擁有這兩個(gè)值 (v1,v2)。我目前正在使用 for 循環(huán)來掃描每個(gè)組合的數(shù)據(jù)框,但想知道是否有更簡(jiǎn)單的方法使用 Pandas 來完成。
1 回答

阿晨1998
TA貢獻(xiàn)2037條經(jīng)驗(yàn) 獲得超6個(gè)贊
使用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
添加回答
舉報(bào)
0/150
提交
取消