熊猫:如何将单热编码数据帧转换为邻接矩阵?

问题描述 投票:3回答:1

我有一个数据框df,形式如下:

      Col1   Col2    Col3   
0      0       1       0
1      1       1       0
2      0       1       1
3      1       1       0

我需要一个新形式的df:

        Col1    Col2    Col3
Col1      0       2       0    
Col2      2       0       1
Col3      0       1       0

基本上,这些值表示所有行的两个给定列的共现。

我该怎么做?

python pandas numpy dataframe
1个回答
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
© www.soinside.com 2019 - 2024. All rights reserved.