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 des 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 des données de réseau

  • Avantages :
    • Lisible par l'humain
    • Permet une analyse plus poussée avec pandas
  • Inconvénients :
    • Répétitif ; espace disque
  • Deux DataFrame : listes de nœuds et 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 correspond à un nœud
    • Les colonnes représentent les métadonnées liées à ce nœud
  • Liste d'arêtes
    • Chaque ligne correspond à une arête
    • Les colonnes représentent les métadonnées liées à cette 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...