Začněte nyníZačněte zdarma

Seznam grafů

V této sérii cvičení využiješ dataset zpráv mezi studenty na vysoké škole a naučíš se filtrovat grafy pro analýzu časových řad. V tomto datasetu jsou uzly studenti a hrany představují zprávy odeslané od jednoho studenta druhému. Graf v současné podobě zachycuje veškerou komunikaci napříč všemi časovými body.

Začneme analýzou grafů, ve kterých se v průběhu času mění pouze hrany.

Dataset je načtený do DataFrame s názvem data. Klidně si ho prozkoumej v IPython Shellu – zaměř se zejména na výstup data['sender'] a data['recipient'].

Toto cvičení je součástí kurzu

Intermediate Network Analysis in Python

Zobrazit kurz

Pokyny k cvičení

  • Inicializuj prázdný seznam s názvem Gs.
  • Pomocí cyklu for iteruj přes months. Uvnitř cyklu:
    • Vytvoř nový neorientovaný graf s názvem G pomocí funkce nx.Graph().
    • Přidej do grafu všechny uzly, které se kdy objevily. Zavolej metodu .add_nodes_from() na G dvakrát – nejprve s argumentem data['sender'], poté s argumentem data['recipient'].
    • Vyfiltruj DataFrame tak, aby obsahoval pouze daný měsíc. Tento krok už máš připravený.
    • Přidej hrany z filtrovaného DataFrame pomocí metody .add_edges_from(), přičemž df_filtered['sender'] a df_filtered['recipient'] předej do zip().
    • Připoj G k seznamu grafů Gs.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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))
Upravit a spustit kód