Listă de grafuri
În această serie de exerciții, vei folosi un set de date cu mesaje trimise între studenți pentru a învăța cum să filtrezi grafuri în vederea analizei seriilor de timp. În acest set de date, nodurile reprezintă studenți, iar muchiile indică mesajele trimise de la un student la altul. Graful actual captează toate comunicările din toate momentele de timp.
Să începem prin a analiza grafurile în care doar muchiile se modifică în timp.
Setul de date a fost încărcat într-un DataFrame numit data. Explorează-l în IPython Shell. Verifică în special rezultatele returnate de data['sender'] și data['recipient'].
Acest exercițiu face parte din cursul
Analiză intermediară a rețelelor în Python
Instrucțiuni pentru exercițiu
- Inițializează o listă goală numită
Gs. - Folosește o buclă
forpentru a itera pestemonths. În interiorul buclei:- Instanțiază un nou graf neorientat numit
G, folosind funcțianx.Graph(). - Adaugă în graf toate nodurile care au apărut vreodată. Pentru aceasta, folosește metoda
.add_nodes_from()peGde două ori: prima dată cudata['sender']ca argument, apoi cudata['recipient']. - Filtrează DataFrame-ul astfel încât să conțină doar luna curentă. Acest pas a fost deja realizat pentru tine.
- Adaugă muchiile din DataFrame-ul filtrat. Folosește metoda
.add_edges_from()cudf_filtered['sender']șidf_filtered['recipient']transmise înzip(). - Adaugă
Gla lista de grafuriGs.
- Instanțiază un nou graf neorientat numit
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
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))