Aan de slagBegin gratis

Lijst van grafen

In deze serie oefeningen gebruik je een berichten-dataset van een universiteit om te leren hoe je grafen filtert voor tijdreeksanalyse. In deze gegevensset zijn de knopen studenten en geven de randen aan dat er een bericht is verzonden van de ene student naar de andere. De huidige graaf bevat alle communicatie op alle tijdstippen.

Laten we beginnen met het analyseren van grafen waarin alleen de randen in de tijd veranderen.

De gegevensset is ingeladen in een DataFrame met de naam data. Verken die gerust in de IPython Shell. Bekijk specifiek de uitvoer van data['sender'] en data['recipient'].

Deze oefening maakt deel uit van de cursus

Gemiddelde netwerkanalyse in Python

Bekijk cursus

Oefeninstructies

  • Initialiseer een lege lijst met de naam Gs.
  • Gebruik een for-lus om over months te itereren. In de lus:
    • Maak een nieuwe ongerichte graaf G aan met de functie nx.Graph().
    • Voeg alle knopen toe die ooit zijn voorgekomen in de graaf. Doe dit door de methode .add_nodes_from() op G twee keer te gebruiken: eerst met data['sender'] als argument en daarna met data['recipient'].
    • Filter de DataFrame zodat alleen de gegeven maand overblijft. Dit is al voor je gedaan.
    • Voeg randen toe vanuit de gefilterde DataFrame. Gebruik hiervoor de methode .add_edges_from() met df_filtered['sender'] en df_filtered['recipient'] doorgegeven aan zip().
    • Voeg G toe aan de lijst met grafen Gs.

Interactieve oefening met praktijkervaring

Probeer deze oefening door deze voorbeeldcode aan te vullen.

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))
Code bewerken en uitvoeren