Filtro temporal en aristas
Ahora vas a practicar cómo filtrar el grafo usando una condicional aplicada a las aristas. Esto te ayudará a ganar práctica y a sentirte cómodo con las list comprehensions que contienen condicionales.
Para ayudarte en los ejercicios, recuerda que puedes importar objetos datetime del módulo datetime. En el grafo, los metadatos tienen una clave date asociada a un objeto datetime como valor.
Este ejercicio forma parte del curso
Análisis de redes intermedio en Python
Instrucciones del ejercicio
- Instancia un nuevo grafo llamado
G_sub. - Añade los nodos del grafo original (incluida la metainformación de los nodos) usando el método
.add_nodes_from(). - Añade las aristas usando una list comprehension con una única condicional sobre las fechas de las aristas: que la fecha de la arista sea anterior a 2004-05-16. Para hacerlo:
- Usa el método
.add_edges_from()con una list comprehension como argumento. - La expresión de salida de la list comprehension es
(u, v, d). Itera por todas las aristas deGy comprueba sid['date']es menor quedatetime(2004, 5, 16).
- Usa el método
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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['____'] < ____(____,____,____)])