I have a data frame df, of the form:
我有一个数据框df,形式如下:
Col1 Col2 Col3
0 0 1 0
1 1 1 0
2 0 1 1
3 1 1 0
I need a new df of the form:
我需要一个新形式的df:
Col1 Col2 Col3
Col1 0 2 0
Col2 2 0 1
Col3 0 1 0
Basically the values represent the co-occurrences of two given columns for all rows.
基本上,这些值表示所有行的两个给定列的共现。
How do I go about this?
我该怎么做?
1 个解决方案
#1
3
Simply leverage matrix-multiplication
there -
只需利用矩阵乘法 -
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
#1
3
Simply leverage matrix-multiplication
there -
只需利用矩阵乘法 -
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