我使用networkx
从txt文件构建电子邮件网络结构,其中每行表示一个“边缘”。我首先加载txt文件(3列:{ '#Sender', '收件人', '时间'})成Python,然后使用下面的代码转换为networkx
对象:将大熊猫数据框转换为Networkx对象时边缘数量不同
import networkx as nx
import pandas as pd
email_df = pd.read_csv('email_network.txt', delimiter = '->')
email = nx.from_pandas_dataframe(email_df, '#Sender', 'Recipient', edge_attr = 'time')
可以访问email.txt
数据here。
然而,email_df
(一pandas
DataFrame
对象)有82927的长度,而email
(一Networkx
对象)有3251
In [1]: len(email_df)
In [2]: 82927
In [3]: len(email.edges())
In [4]: 3251
的长度我真的很困惑,因为即使包含的行相同的两个节点在email_df
的前两列中具有相同的方向序列(比如'1'到'2'),第三列('时间',意思是时间戳)应该将它们彼此区分开来,因此不会复制边缘会出现。那么为什么在我使用nx.from_pandas_dataframe
从`email_df'中读取之后,边的数量从82927急剧减少到了3251?
有人会帮我解释一下吗?
谢谢。
代码窗口是指仅适用于JS代码。对于所有其他语言,请粘贴您的代码,突出显示它并按ctrl + k进行格式化。 –