LoslegenKostenlos loslegen

Zeitfilter auf Kanten

Jetzt übst du, den Graphen mithilfe einer Bedingung auf die Kanten zu filtern. So bekommst du Routine im Umgang mit List-Comprehensions, die Bedingungen enthalten.

Für die Übungen kannst du dir merken, dass du datetime-Objekte aus dem Modul datetime importieren kannst. Im Graphen hat die Metadaten-Spalte den Schlüssel date, der mit einem datetime-Objekt als Wert verknüpft ist.

Diese Übung ist Teil des Kurses

Fortgeschrittene Netzwerkanalyse in Python

Kurs anzeigen

Anleitung zur Übung

  • Instanziiere einen neuen Graphen namens G_sub.
  • Füge Knoten aus dem ursprünglichen Graphen hinzu (einschließlich der Knoten-Metadaten), indem du die Methode .add_nodes_from() verwendest.
  • Füge Kanten mithilfe einer List-Comprehension hinzu, die eine Bedingung auf das Kantendatum enthält: Das Datum der Kante ist früher als 2004-05-16. Gehe dazu so vor:
    • Verwende die Methode .add_edges_from() mit einer List-Comprehension als Argument.
    • Der Ausgabeausdruck der List-Comprehension ist (u, v, d). Iteriere über alle Kanten von G und prüfe, ob d['date'] kleiner ist als datetime(2004, 5, 16).

Interaktive Übung

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

import networkx as nx
from datetime import datetime

# Instantiate a new graph: G_sub
G_sub = ____

# Add nodes from the original graph
____

# Add edges using a list comprehension with one conditional on the edge dates, that the date of the edge is earlier than 2004-05-16.
G_sub.____([(____, ____, ____) for u, v, d in G.edges(data=True) if d['____'] < ____(____,____,____)])
Code bearbeiten und ausführen