gpt4 book ai didi

python - 为 Pandas 数据框中的两列创建邻接矩阵

转载 作者:太空狗 更新时间:2023-10-29 20:41:39 28 4
gpt4 key购买 nike

我有以下形式的数据框:

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

我想获取Name_AName_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

解决这个问题的最 pythonic/可扩展的方法是什么?

编辑:另外,我知道如果 Adam, Ben 行在数据集中,那么在其他某个点,Ben, Adam 也将在数据集中。

最佳答案

您可以使用 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

关于python - 为 Pandas 数据框中的两列创建邻接矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42806398/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com