如何解决遍历熊猫数据框以创建多个网络
我有一些国家之间进行贸易的数据。我已按月拆分了主文件,并获得了12个2019年的csv文件。下面提供了1月csv数据的示例:
reporter partner year month trade
0 Albania Argentina 2019 01 515256
1 Albania Australia 2019 01 398336
2 Albania Austria 2019 01 7664503
3 Albania Bahrain 2019 01 400
4 Albania Bangladesh 2019 01 653907
5 Zimbabwe Zambia 2019 01 79569855
我想每月建立一个复杂的网络,并打印每个网络的节点数。现在,我可以像这样艰难(愚蠢)地做到这一点。
df01 = pd.read_csv('012019.csv')
df02 = pd.read_csv('022019.csv')
df03 = pd.read_csv('032019.csv')
df1= df01[['reporter','partner','trade']]
df2= df02[['reporter','trade']]
df3= df03[['reporter','trade']]
G1 = nx.Graph()
G1 = nx.from_pandas_edgelist(df1,'reporter',edge_attr='trade')
G1.number_of_nodes()
,以此类推,以用于下一个网络。
我的问题是如何使用“ for循环”读取文件,将其从数据帧转换为网络并报告每个节点的节点数。
我尝试过,但是没有任何报道。
for f in glob.glob('.csv'):
df = pd.read_csv(f)
df1 = df[['reporter','trade']]
G = nx.from_pandas_edgelist(df1,edge_attr='trade')
G.number_of_nodes()
谢谢。
编辑:
好的。因此,我设法使用类似如下的代码来完成上述操作:
for files in glob.glob('/home/user/VMShared/network/2nd/*.csv'):
df = pd.read_csv(files)
df1=df[['reporter','import']]
G = nx.Graph()
G = nx.from_pandas_edgelist(df1,edge_attr='import')
nx.write_graphml_lxml(G,"/home/user/VMShared/network/2nd/*.graphml")
我现在面临的问题是如何编写单独的文件。我从中得到的只是一个名为* .graphml的文件。如何获得每个输入文件的graphml文件?另外,如果我能获得与输入文件相同的graphml输出名称,那将是一个加号。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。