Pandas 在数据帧上循环以创建多个网络

Pandas 在数据帧上循环以创建多个网络,pandas,networkx,Pandas,Networkx,我有各国相互贸易的数据。我已经按照月份划分了主文件,并获得了2019年的12个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

我有各国相互贸易的数据。我已经按照月份划分了主文件,并获得了2019年的12个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','partner', 'trade']]
df3= df03[['reporter','partner', 'trade']]
G1 = nx.Graph()
G1 = nx.from_pandas_edgelist(df1, 'reporter', 'partner', edge_attr='trade')
G1.number_of_nodes()
等下一个网络

我的问题是如何使用“for循环”读取文件,将它们从dataframe转换为网络,并报告每个节点的节点数

我试过了,但没有报告

for f in glob.glob('.csv'):
    df = pd.read_csv(f)
    df1 = df[['reporter','partner', 'trade']]
    G = nx.from_pandas_edgelist(df1, 'reporter', 'partner', 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','partner', 'import']]
G = nx.Graph()
G = nx.from_pandas_edgelist(df1, 'reporter', 'partner', edge_attr='import')
nx.write_graphml_lxml(G, "/home/user/VMShared/network/2nd/*.graphml")

我现在面临的问题是如何编写单独的文件。我从中得到的只是一个名为*.graphml的文件。如何为每个输入文件获取graphml文件?另外,如果我可以得到与输入文件相同的graphml输出名称,那将是一个加号。

.csv
之前添加一个星号
*
,这样它就像glob.glob('*.csv')中的f一样。检查并调用print:print(例如,节点的数量)