ПочатиПочніть безкоштовно

Список графів

У цій серії вправ ви використаєте набір даних про повідомлення в коледжі, щоб навчитися фільтрувати графи для аналізу часових рядів. У цьому наборі даних вузли — це студенти, а ребра позначають повідомлення, надіслані від одного студента до іншого. Поточний граф охоплює всі комунікації на всіх часових відрізках.

Почнімо з аналізу графів, у яких з часом змінюються лише ребра.

Набір даних завантажено в датафрейм data. Можете дослідити його в IPython Shell. Зокрема, перегляньте вміст data['sender'] та data['recipient'].

Ця вправа є частиною курсу

Середній рівень Network Analysis у Python

Переглянути курс

Інструкції до вправи

  • Ініціалізуйте порожній список під назвою Gs.
  • Використайте цикл for, щоб ітеруватися по months. Усередині циклу:
    • Створіть новий неорієнтований граф G за допомогою функції nx.Graph().
    • Додайте до графа всі вузли, які коли-небудь з'являлися. Для цього двічі викличте метод .add_nodes_from() для G: спочатку з аргументом data['sender'], а потім з data['recipient'].
    • Відфільтруйте датафрейм так, щоб залишився лише поточний місяць. Це вже зроблено за вас.
    • Додайте ребра з відфільтрованого датафрейму. Для цього використайте метод .add_edges_from() із переданими в zip() df_filtered['sender'] та df_filtered['recipient'].
    • Додайте G до списку графів Gs.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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))
Редагувати та запускати код