Networkx密钥错误:'source'与from_pandas_edgelist搭配,代表无向边缘化清单

nsc4cvqm  于 2022-11-20  发布在  其他
关注(0)|答案(2)|浏览(191)

我在Pandas数据框中有一个边缘列表,看起来像这样:

topic   neighbor
0   K       Kl
1   K       Pr
2   Kl      TS
3   Pr      Kl
4   Pr      Pr

当我把它转换成一个带有G = nx.from_pandas_edgelist(df)的Graph(使用networkx作为nx)时,它会给我KeyError:“来源”。
当我指定一个源和目标G = nx.from_pandas_edgelist(df, "topic", "neighbor")时,它可以工作,但这是一个无向图,所以我并不真正想要一个源和目标。
这是必须要做的吗?指定源和目标是否会对后面的度中心性计算产生影响?

lpwwtiir

lpwwtiir1#

试试看:

import pandas as pd
import networkx as nx

df = pd.read_clipboard()
print(df)

输出量:

topic neighbor
0     K       Kl
1     K       Pr
2    Kl       TS
3    Pr       Kl
4    Pr       Pr

使用sourcetarget参数:

G = nx.from_pandas_edgelist(df, source='topic', target='neighbor')
nx.draw_networkx(G)

输出量:

tp5buhyn

tp5buhyn2#

是,从 Dataframe 创建无定向网络需要指定源和目标。
这不是必须的,但是为了确保图是无向的,可以指定create_using kwarg

from networkx import Graph, from_pandas_edgelist

df = ...

# note that Graph is the default setting, so specifying
# create_using=Graph is optional
G = from_pandas_edgelist(df, "topic", "neighbor", create_using=Graph)

print(G.is_directed())
# False

相关问题