CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • 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 avec la fonction nx.Graph().
    • Ajoutez au graphe tous les nœuds qui sont déjà apparus. Pour cela, 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é. Cela a été fait pour vous.
    • Ajoutez les arêtes à partir du DataFrame filtré. Pour cela, 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.

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