ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Inicialize uma lista vazia chamada Gs.
  • Use um loop for para iterar sobre months. Dentro do loop:
    • Instancie um novo grafo não direcionado chamado G, usando a função nx.Graph().
    • Adicione ao grafo todos os nós que já apareceram. Para isso, use o método .add_nodes_from() em G duas vezes, primeiro com data['sender'] como argumento e depois com data['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() com df_filtered['sender'] e df_filtered['recipient'] passados para zip().
    • Acrescente G à lista de grafos Gs.

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))
Editar e executar o código