Kom igångKom igång gratis

Lista med grafer

I den här övningsserien använder du ett dataset med meddelanden från en högskola för att lära dig filtrera grafer för tidsserieanalys. I datasetet är noder studenter och kanter representerar meddelanden som skickas från en student till en annan. Grafen i sitt nuvarande tillstånd fångar all kommunikation vid alla tidpunkter.

Låt oss börja med att analysera grafer där endast kanterna förändras över tid.

Datasetet har laddats in i ett DataFrame som heter data. Utforska det gärna i IPython Shell. Ta särskilt en titt på utdata från data['sender'] och data['recipient'].

Den här övningen är en del av kursen

Nätverksanalys i Python – fortsättningskurs

Visa kurs

Övningsinstruktioner

  • Initiera en tom lista kallad Gs.
  • Använd en for-slinga för att iterera över months. Inuti slingan:
    • Skapa en ny oriktad graf kallad G med funktionen nx.Graph().
    • Lägg till alla noder som någonsin har förekommit i grafen. Använd metoden .add_nodes_from()G två gånger – först med data['sender'] som argument och sedan med data['recipient'].
    • Filtrera DataFramet så att det bara innehåller den aktuella månaden. Det här steget är redan gjort åt dig.
    • Lägg till kanter från det filtrerade DataFramet. Använd metoden .add_edges_from() med df_filtered['sender'] och df_filtered['recipient'] inpassade i zip().
    • Lägg till G i listan med grafer Gs.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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))
Redigera och kör kod