Représenter des données de réseau avec pandas

Analyse de réseaux intermédiaire en Python

Eric Ma

Data Carpentry instructor and author of nxviz package

Fichiers CSV pour stocker les données de réseau

  • Fichier CSV
person,party,weight
Barrett.Samuel,LondonEnemies,1
Barrett.Samuel,StAndrewsLodge,1
Marshall.Thomas,LondonEnemies,1
Eaton.Joseph,TeaParty,1
Bass.Henry,LondonEnemies,1
Analyse de réseaux intermédiaire en Python

Fichiers CSV pour stocker les données de réseau

  • Avantages :
    • Lisible par l’humain
    • Analyses supplémentaires avec pandas
  • Inconvénients :
    • Répétitif ; espace disque
  • Deux DataFrames : liste de nœuds et liste d’arêtes
Analyse de réseaux intermédiaire en Python

Liste de nœuds et liste d’arêtes

  • Liste de nœuds
    • Chaque ligne est un nœud
    • Colonnes : métadonnées du nœud
  • Liste d’arêtes
    • Chaque ligne est une arête
    • Colonnes : métadonnées de l’arête
Analyse de réseaux intermédiaire en Python

Pandas et graphes

list(G.nodes(data=True))
[(0, {'bipartite': 0}),
(1, {'bipartite': 0}),
(2, {'bipartite': 0}),
...]
nodelist = []

for n, d in G.nodes(data=True): node_data = dict() node_data['node'] = n
node_data.update(d)
nodelist.append(node_data)
Analyse de réseaux intermédiaire en Python

Pandas et graphes

nodelist
[{'bipartite': 0, 'node': 0},
{'bipartite': 0, 'node': 1},
{'bipartite': 0, 'node': 2},
{'bipartite': 0, 'node': 3},
{'bipartite': 0, 'node': 4},...]
Analyse de réseaux intermédiaire en Python

Pandas et graphes

import pandas as pd
pd.DataFrame(nodelist)
  bipartite  node
0           0     0
1           0     1
2           0     2
3           0     3
4           0     4
5           1     5
6           1     6
7           1     7
pd.DataFrame(nodelist).to_csv('my_file.csv')
Analyse de réseaux intermédiaire en Python

Passons à la pratique !

Analyse de réseaux intermédiaire en Python

Preparing Video For Download...