Lista di grafi
In questo set di esercizi userai un insieme di dati sui messaggi universitari per imparare a filtrare i grafi per l'analisi di serie temporali. In questo dataset, i nodi sono studenti e gli archi indicano l'invio di messaggi da uno studente a un altro. Il grafo, così com'è ora, cattura tutte le comunicazioni in tutti i momenti.
Iniziamo analizzando i grafi in cui cambiano solo gli archi nel tempo.
Il dataset è stato caricato in un DataFrame chiamato data. Sentiti libero di esplorarlo nella IPython Shell. In particolare, dai un'occhiata all'output di data['sender'] e data['recipient'].
Questo esercizio fa parte del corso
Analisi di reti intermedia in Python
Istruzioni dell'esercizio
- Inizializza una lista vuota chiamata
Gs. - Usa un ciclo
forper iterare sumonths. All'interno del ciclo:- Istanzia un nuovo grafo non orientato chiamato
G, usando la funzionenx.Graph(). - Aggiungi al grafo tutti i nodi che sono mai comparsi. Per farlo, usa due volte il metodo
.add_nodes_from()suG, prima condata['sender']come argomento e poi condata['recipient']. - Filtra il DataFrame in modo che contenga solo il mese specificato. Questo è già stato fatto per te.
- Aggiungi gli archi dal DataFrame filtrato. Per farlo, usa il metodo
.add_edges_from()condf_filtered['sender']edf_filtered['recipient']passati azip(). - Aggiungi
Galla lista di grafiGs.
- Istanzia un nuovo grafo non orientato chiamato
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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))