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
Pokyny k cvičení
- Inicializuj prázdný seznam s názvem
Gs. - Pomocí cyklu
foriteruj přesmonths. Uvnitř cyklu:- Vytvoř nový neorientovaný graf s názvem
Gpomocí funkcenx.Graph(). - Přidej do grafu všechny uzly, které se kdy objevily. Zavolej metodu
.add_nodes_from()naGdvakrát – nejprve s argumentemdata['sender'], poté s argumentemdata['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']adf_filtered['recipient']předej dozip(). - Připoj
Gk seznamu grafůGs.
- Vytvoř nový neorientovaný graf s názvem
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))