CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Initialisez une liste vide appelée Gs.
  • Utilisez une boucle for pour itérer sur months. À l'intérieur de la boucle :
    • Instanciez un nouveau graphe non orienté appelé G à l'aide de la fonction nx.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() sur G, d'abord avec data['sender'], puis avec data['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() avec df_filtered['sender'] et df_filtered['recipient'] passés à zip().
    • Ajoutez G à la liste de graphes Gs avec .append().

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))
Modifier et exécuter le code