我使用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進行格式化。 –