Bắt đầu ngayBắt đầu miễn phí

Danh sách các đồ thị

Trong bộ bài tập này, bạn sẽ dùng một bộ dữ liệu tin nhắn trong trường đại học để học cách lọc đồ thị phục vụ phân tích chuỗi thời gian. Trong bộ dữ liệu này, các nút là sinh viên, và các cạnh biểu thị tin nhắn được gửi từ một sinh viên đến sinh viên khác. Đồ thị hiện tại ghi nhận mọi liên lạc ở mọi thời điểm.

Hãy bắt đầu bằng cách phân tích các đồ thị mà chỉ có các cạnh thay đổi theo thời gian.

Bộ dữ liệu đã được nạp vào một DataFrame tên là data. Bạn có thể khám phá nó trong IPython Shell. Cụ thể, hãy xem đầu ra của data['sender']data['recipient'].

Bài tập này là một phần của khóa học

Phân tích mạng nâng cao với Python

Xem khóa học

Hướng dẫn bài tập

  • Khởi tạo một list rỗng tên Gs.
  • Dùng vòng lặp for để lặp qua months. Bên trong vòng lặp:
    • Tạo một đồ thị vô hướng mới tên G bằng hàm nx.Graph().
    • Thêm tất cả các nút từng xuất hiện vào đồ thị. Để làm điều này, dùng phương thức .add_nodes_from() trên G hai lần: lần đầu với đối số data['sender'], và lần sau với data['recipient'].
    • Lọc DataFrame để chỉ còn tháng đã cho. Phần này đã được thực hiện sẵn cho bạn.
    • Thêm các cạnh từ DataFrame đã lọc. Để làm điều này, dùng phương thức .add_edges_from() với df_filtered['sender']df_filtered['recipient'] truyền vào zip().
    • Thêm G vào danh sách đồ thị Gs bằng .append().

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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))
Chỉnh sửa và Chạy Mã