Create adjacency matrix for two columns in pandas dataframe

后端 未结 1 1435
感动是毒
感动是毒 2020-12-09 19:30

I have a dataframe of the form:

index  Name_A  Name_B
  0    Adam    Ben
  1    Chris   David
  2    Adam    Chris
  3    Ben     Chris

And

相关标签:
1条回答
  • 2020-12-09 19:58

    You can use crosstab and then reindex by union of column and index values:

    df = pd.crosstab(df.Name_A, df.Name_B)
    print (df)
    Name_B  Ben  Chris  David
    Name_A                   
    Adam      1      1      0
    Ben       0      1      0
    Chris     0      0      1
    
    df = pd.crosstab(df.Name_A, df.Name_B)
    idx = df.columns.union(df.index)
    df = df.reindex(index = idx, columns=idx, fill_value=0)
    print (df)
           Adam  Ben  Chris  David
    Adam      0    1      1      0
    Ben       0    0      1      0
    Chris     0    0      0      1
    David     0    0      0      0
    
    0 讨论(0)
提交回复
热议问题