我有一个数据框 df ,格式为:
Col1 Col2 Col3
0 0 1 0
1 1 1 0
2 0 1 1
3 1 1 0
我需要以下格式的 new df :
Col1 Col2 Col3
Col1 0 2 0
Col2 2 0 1
Col3 0 1 0
基本上,这些值表示所有行的两个给定列的共现。
我该怎么做?
答案 0 :(得分:4)
只需利用matrix-multiplication
-
In [21]: df_out = df.T.dot(df)
In [22]: np.fill_diagonal(df_out.values, 0)
In [23]: df_out
Out[23]:
Col1 Col2 Col3
Col1 0 2 0
Col2 2 0 1
Col3 0 1 0