Liste de graphes
Dans cette série d’exercices, vous allez utiliser un jeu de données de messages entre étudiants pour apprendre à filtrer des graphes pour l’analyse de séries temporelles. Dans ce jeu de données, les nœuds correspondent aux étudiants et les arêtes représentent les messages envoyés d’un étudiant à un autre. Le graphe tel qu’il est actuellement inclut toutes les communications, tous instants confondus.
Commençons par analyser des graphes dans lesquels seules les arêtes évoluent au fil du temps.
Le jeu de données a été chargé dans un DataFrame nommé data. N’hésitez pas à l’explorer dans l’IPython Shell. En particulier, regardez la sortie de data['sender'] et data['recipient'].
Cet exercice fait partie du cours
Analyse de réseaux intermédiaire en Python
Instructions
- Initialisez une liste vide appelée
Gs. - Utilisez une boucle
forpour itérer surmonths. À l’intérieur de la boucle :- Instanciez un nouveau graphe non orienté appelé
Gavec la fonctionnx.Graph(). - Ajoutez au graphe tous les nœuds qui sont déjà apparus. Pour cela, utilisez deux fois la méthode
.add_nodes_from()surG, d’abord avecdata['sender'], puis avecdata['recipient']. - Filtrez le DataFrame pour ne garder que le mois donné. Cela a été fait pour vous.
- Ajoutez les arêtes à partir du DataFrame filtré. Pour cela, utilisez la méthode
.add_edges_from()avecdf_filtered['sender']etdf_filtered['recipient']passés àzip(). - Ajoutez
Gà la liste de graphesGs.
- Instanciez un nouveau graphe non orienté appelé
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
import networkx as nx
months = range(4, 11)
# Initialize an empty list: Gs
Gs = []
for month in months:
# Instantiate a new undirected graph: G
G = ____
# Add in all nodes that have ever shown up to the graph
____
____
# Filter the DataFrame so that there's only the given month
df_filtered = data[data['month'] == month]
# Add edges from filtered DataFrame
____
# Append G to the list of graphs
____
print(len(Gs))