The*_*Ref 9 python dataframe pandas
我有一个表格的数据框:
index Name_A Name_B
0 Adam Ben
1 Chris David
2 Adam Chris
3 Ben Chris
Run Code Online (Sandbox Code Playgroud)
我想获得的邻接矩阵Name_A和Name_B,即:
Adam Ben Chris David
Adam 0 1 1 0
Ben 0 0 1 0
Chris 0 0 0 1
David 0 0 0 0
Run Code Online (Sandbox Code Playgroud)
什么是他们最狡猾/可扩展的解决方法?
编辑:此外,我知道如果行在Adam, Ben数据集中,那么在其他一点,Ben, Adam也将在数据集中.
jez*_*ael 17
您可以使用crosstab,然后reindex通过union列和索引值:
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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4895 次 |
| 最近记录: |