Lista de grafos
En este conjunto de ejercicios, vas a usar un conjunto de datos de mensajería universitaria para aprender a filtrar grafos para análisis de series temporales. En este conjunto de datos, los nodos son estudiantes y las aristas indican mensajes enviados de un estudiante a otro. El grafo, tal como está ahora, recoge todas las comunicaciones en todos los momentos.
Empecemos analizando los grafos en los que solo cambian las aristas a lo largo del tiempo.
El conjunto de datos se ha cargado en un DataFrame llamado data. Si quieres, explóralo en la IPython Shell. En particular, revisa la salida de data['sender'] y data['recipient'].
Este ejercicio forma parte del curso
Análisis de redes intermedio en Python
Instrucciones del ejercicio
- Inicializa una lista vacía llamada
Gs. - Usa un bucle
forpara iterar sobremonths. Dentro del bucle:- Instancia un nuevo grafo no dirigido llamado
Gusando la funciónnx.Graph(). - Añade al grafo todos los nodos que hayan aparecido alguna vez. Para ello, usa el método
.add_nodes_from()sobreGdos veces: primero condata['sender']como argumento y luego condata['recipient']. - Filtra el DataFrame para que solo contenga el mes dado. Esto ya está hecho por ti.
- Añade las aristas desde el DataFrame filtrado. Para ello, usa el método
.add_edges_from()condf_filtered['sender']ydf_filtered['recipient']pasados azip(). - Añade
Ga la lista de grafosGscon.append().
- Instancia un nuevo grafo no dirigido llamado
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
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))