Lista de grafos
Neste conjunto de exercícios, você vai usar um conjunto de dados de mensagens de uma faculdade para aprender a filtrar grafos para análise de séries temporais. Nesse conjunto, os nós são estudantes e as arestas representam mensagens enviadas de um estudante para outro. O grafo, do jeito que está agora, captura todas as comunicações em todos os momentos.
Vamos começar analisando os grafos em que apenas as arestas mudam ao longo do tempo.
O conjunto de dados foi carregado em um DataFrame chamado data. Fique à vontade para explorá-lo no IPython Shell. Em especial, confira a saída de data['sender'] e data['recipient'].
Este exercício faz parte do curso
Análise de Redes Intermediária em Python
Instruções do exercício
- Inicialize uma lista vazia chamada
Gs. - Use um loop
forpara iterar sobremonths. Dentro do loop:- Instancie um novo grafo não direcionado chamado
G, usando a funçãonx.Graph(). - Adicione ao grafo todos os nós que já apareceram. Para isso, use o método
.add_nodes_from()emGduas vezes, primeiro comdata['sender']como argumento e depois comdata['recipient']. - Filtre o DataFrame para conter apenas o mês fornecido. Isso já foi feito para você.
- Adicione arestas a partir do DataFrame filtrado. Para isso, use o método
.add_edges_from()comdf_filtered['sender']edf_filtered['recipient']passados parazip(). - Acrescente
Gà lista de grafosGs.
- Instancie um novo grafo não direcionado chamado
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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))