LoslegenKostenlos loslegen

Liste von Graphen

In dieser Übungsreihe verwendest du einen Messaging-Datensatz einer Hochschule, um zu lernen, wie man Graphen für Zeitreihenanalysen filtert. In diesem Datensatz sind die Knoten Studierende, und die Kanten stehen für Nachrichten, die von einer Person an eine andere gesendet werden. Der Graph in seiner aktuellen Form umfasst alle Kommunikation zu allen Zeitpunkten.

Lass uns damit beginnen, die Graphen zu analysieren, bei denen sich nur die Kanten über die Zeit verändern.

Der Datensatz wurde in einen DataFrame namens data geladen. Schau ihn dir gern in der IPython-Shell an. Sieh dir insbesondere die Ausgaben von data['sender'] und data['recipient'] an.

Diese Übung ist Teil des Kurses

Fortgeschrittene Netzwerkanalyse in Python

Kurs anzeigen

Anleitung zur Übung

  • Initialisiere eine leere Liste namens Gs.
  • Verwende eine for-Schleife, um über months zu iterieren. Innerhalb der Schleife:
    • Erzeuge einen neuen ungerichteten Graphen namens G mit der Funktion nx.Graph().
    • Füge alle Knoten hinzu, die jemals aufgetaucht sind. Verwende dafür die Methode .add_nodes_from() auf G zweimal: zuerst mit data['sender'] als Argument und dann mit data['recipient'].
    • Filtere den DataFrame so, dass nur der gegebene Monat enthalten ist. Das wurde bereits für dich erledigt.
    • Füge Kanten aus dem gefilterten DataFrame hinzu. Verwende dazu die Methode .add_edges_from() mit df_filtered['sender'] und df_filtered['recipient'], übergeben an zip().
    • Hänge G an die Liste der Graphen Gs an.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen