首页 > 解决方案 > 从 csv 文件创建网络(Python、Pandas、Networkx)

问题描述

我有一个 csv 文件,我想从中建立一个网络。

我拥有的 csv 文件看起来像这样

公司 投资者
(comp1) (投资者A)
(comp2) (投资者B)
(comp3) (投资者C)
(comp4) (投资者B,投资者C)

我在 python 上使用 pandas 和 networkx。

我的网络节点将是每个公司和投资者。

我想如果每一行只有一个投资者(如 comp1~3)我可以让它工作但是,我在有多个投资者的行时遇到了麻烦。

我对编码很陌生。任何帮助,将不胜感激。

标签: pythonpandasnetworkx

解决方案


使用pd.DataFrame.explode

df_e = df.explode('Investors')
nx.from_pandas_edgelist(df_e, 'Company', 'Investors')

如果 Investors 是字符串而不是元组,则可以使用以下内容

df['Investors'] = df['Investors'].str.strip('\[|\]').str.split(',')
df_e = df.explode('Investors')
nx.from_pandas_edgelist(df_e, 'Company', 'Investors')

推荐阅读