gpt4 book ai didi

python - 如何从包含单行所有关系的csv文件中获取关系数据?

转载 作者:行者123 更新时间:2023-12-01 07:57:13 25 4
gpt4 key购买 nike

我想在networkx中为植物建立关系图。在我的 csv 文件中,这些植物的所有数据都包含在每个植物的单行中。例如:植物编号、植物名称、伴生植物、拮抗植物。现在我想要 networkx 图,其中植物名称位于中间,并与所有伴生植物有关系(每个伴生植物是节点,主植物与所有这些伴生植物都有边缘)。

对于苹果来说,数据是这样的:

1,apple,"pearl,strawberry,onion,potato","rose,cabbage,dill"

我知道如何制作图表本身,因为我研究了不同的旧 csv 文件,其中植物和每个同伴都在自己的行上,如下所示:

apple,pearl
apple,strawberry
apple,onion
apple,potato

我想知道如何从这个新的 csv 中读取和获取边缘,该 csv 中的所有同伴都在单行上,并以逗号分隔。有什么建议吗?

最佳答案

您不应按照另一个问题中的建议将 CSV 行按 ',' 分割。 CSV 中的变量包含 ',',因此您将得到不正确的结果。只需使用pandas.read_csv():

df = pd.read_csv('WAKA.csv', header=None)


0 1 2 3
0 1 apple pearl,strawberry,onion,potato rose,cabbage,dill
1 2 apple1 pearl,strawberry,onion,potato rose,cabbage,dill

然后迭代行,获取第 1 列,按 ',' 拆分第 2 列中的字符串,并将其添加到您的 networkx 图表中:


for l in df.iterrows(): # Iterate through dataframe rows
G.add_edges_from( # Add edges to graph
(l[1][1], fruit) # It is the edge: element from column 1 and splitted fruit
for fruit in l[1][2].strip('"').split(',') # Crop '"' and split by ','
)

然后画它:

nx.draw(
G,
node_size=3500,
font_size=40,
labels={n: n for n in G.nodes}
)

enter image description here

关于python - 如何从包含单行所有关系的csv文件中获取关系数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55908620/

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