J'utilise networkx
pour créer une structure de réseau de messagerie à partir d'un fichier txt où chaque ligne représente un "bord". I chargé en premier le fichier txt (3 colonnes: { '#Sender', 'destinataire', 'temps'}) en python et ensuite converti en un objet networkx
utilisant le code suivant:Le nombre d'arêtes est différent lors de la conversion d'une trame de données pandas en objet 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')
Les données email.txt
sont accessibles here.
Cependant, email_df
(un pandas
objet DataFrame
) a une longueur de 82927, alors que email
(un objet Networkx
) a une longueur de 3251.
In [1]: len(email_df)
In [2]: 82927
In [3]: len(email.edges())
In [4]: 3251
Je suis vraiment confus parce que même si les lignes contenant la mêmes deux nœuds dans les deux premières colonnes de email_df
avec la même séquence de direction (par exemple, '1' à '2'), la troisième colonne ('temps', ce qui signifie timestamped) devrait les distinguer les uns des autres, par conséquent, pas répliqué les bords apparaîtraient. Alors pourquoi le nombre d'arêtes a considérablement diminué de 82927 à 3251 après avoir utilisé nx.from_pandas_dataframe
pour lire `email_df '?
Est-ce que quelqu'un pourrait m'aider à m'expliquer cela?
Merci.
fenêtres de code sont destinés pour le code JS seulement. Pour toutes les autres langues, collez votre code, mettez-le en surbrillance et appuyez sur ctrl + k pour le formater. –