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
Övningsinstruktioner
- Initiera en tom lista kallad
Gs. - Använd en
for-slinga för att iterera övermonths. Inuti slingan:- Skapa en ny oriktad graf kallad
Gmed funktionennx.Graph(). - Lägg till alla noder som någonsin har förekommit i grafen. Använd metoden
.add_nodes_from()påGtvå gånger – först meddata['sender']som argument och sedan meddata['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()meddf_filtered['sender']ochdf_filtered['recipient']inpassade izip(). - Lägg till
Gi listan med graferGs.
- Skapa en ny oriktad graf kallad
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))