Liste de graphes
Dans cette série d'exercices, vous utiliserez un jeu de données de clavardage entre étudiants pour apprendre à filtrer des graphes en vue d'une analyse chronologique. Dans ce jeu de données, les nœuds représentent des étudiants et les arêtes indiquent qu'un message a été envoyé d'un étudiant à un autre. Le graphe, tel qu'il est maintenant, regroupe toutes les communications à tous les moments.
Commençons par analyser les graphes où seules les arêtes changent 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'].
Cette activité fait partie du cours
Analyse de réseaux intermédiaire en Python
Instructions de l’exercice
- 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é
Gà l'aide de la fonctionnx.Graph(). - Ajoutez au graphe tous les nœuds qui sont déjà apparus. Pour ce faire, 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é. Ceci a été fait pour vous.
- Ajoutez les arêtes à partir du DataFrame filtré. Pour ce faire, utilisez la méthode
.add_edges_from()avecdf_filtered['sender']etdf_filtered['recipient']passés àzip(). - Ajoutez
Gà la liste de graphesGsavec.append().
- Instanciez un nouveau graphe non orienté appelé
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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))