Biểu diễn dữ liệu mạng với pandas

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

Eric Ma

Data Carpentry instructor and author of nxviz package

Tệp CSV để lưu trữ dữ liệu mạng

  • Tệp CSV
person,party,weight
Barrett.Samuel,LondonEnemies,1
Barrett.Samuel,StAndrewsLodge,1
Marshall.Thomas,LondonEnemies,1
Eaton.Joseph,TeaParty,1
Bass.Henry,LondonEnemies,1
Phân tích mạng nâng cao với Python

Tệp CSV để lưu trữ dữ liệu mạng

  • Ưu điểm:
    • Dễ đọc với người dùng
    • Phân tích thêm bằng pandas
  • Nhược điểm:
    • Lặp lại; tốn dung lượng
  • Hai DataFrame: danh sách nút và cạnh
Phân tích mạng nâng cao với Python

Danh sách nút và cạnh

  • Danh sách nút
    • Mỗi hàng là một nút
    • Các cột là metadata gắn với nút
  • Danh sách cạnh
    • Mỗi hàng là một cạnh
    • Các cột là metadata gắn với cạnh
Phân tích mạng nâng cao với Python

Pandas và đồ thị

list(G.nodes(data=True))
[(0, {'bipartite': 0}),
(1, {'bipartite': 0}),
(2, {'bipartite': 0}),
...]
nodelist = []

for n, d in G.nodes(data=True): node_data = dict() node_data['node'] = n
node_data.update(d)
nodelist.append(node_data)
Phân tích mạng nâng cao với Python

Pandas và đồ thị

nodelist
[{'bipartite': 0, 'node': 0},
{'bipartite': 0, 'node': 1},
{'bipartite': 0, 'node': 2},
{'bipartite': 0, 'node': 3},
{'bipartite': 0, 'node': 4},...]
Phân tích mạng nâng cao với Python

Pandas và đồ thị

import pandas as pd
pd.DataFrame(nodelist)
  bipartite  node
0           0     0
1           0     1
2           0     2
3           0     3
4           0     4
5           1     5
6           1     6
7           1     7
pd.DataFrame(nodelist).to_csv('my_file.csv')
Phân tích mạng nâng cao với Python

Ayo berlatih!

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

Preparing Video For Download...