从博客创建邻接列表 Post
Adjacency List Creation from a Blog Post
我需要制作一个邻接表来显示主题线程中两个用户之间的关系。我的数据集包含两列:用户 ID 和主题 ID。主题 ID 就像一个博客 post,因此许多用户可以 post 在上面。数据集如下所示:
User ID
Topics ID
1
55
2
55
1
55
6
55
我需要从中创建一个邻接列表,所以我只有用户及其关系如下:
User
User
1
2
1
6
2
6
关于如何在 excel 或 python 中执行此操作的任何想法?
我们会在朋友 collections.defaultdict
和 itertools.combinations
:
的帮助下度过难关
from collections import defaultdict
from itertools import combinations
by_post_id = defaultdict(set)
data = [
(1, 55),
(2, 55),
(1, 55),
(6, 55),
(1, 42),
(11, 42),
(8, 42),
]
# Group up people by post ID
for user_id, post_id in data:
by_post_id[post_id].add(user_id)
# (`by_post_id` will look like {55: {1, 2, 6}, 42: {8, 1, 11}})
# Walk over each post...
for post_id, user_ids in by_post_id.items():
# ... and generate all pairs of user IDs.
for combo in combinations(user_ids, 2):
print(post_id, combo)
这输出
55 (1, 2)
55 (1, 6)
55 (2, 6)
42 (8, 1)
42 (8, 11)
42 (1, 11)
当然,如果您不关心这对 post_id
,请忽略它。
我需要制作一个邻接表来显示主题线程中两个用户之间的关系。我的数据集包含两列:用户 ID 和主题 ID。主题 ID 就像一个博客 post,因此许多用户可以 post 在上面。数据集如下所示:
User ID | Topics ID |
---|---|
1 | 55 |
2 | 55 |
1 | 55 |
6 | 55 |
我需要从中创建一个邻接列表,所以我只有用户及其关系如下:
User | User |
---|---|
1 | 2 |
1 | 6 |
2 | 6 |
关于如何在 excel 或 python 中执行此操作的任何想法?
我们会在朋友 collections.defaultdict
和 itertools.combinations
:
from collections import defaultdict
from itertools import combinations
by_post_id = defaultdict(set)
data = [
(1, 55),
(2, 55),
(1, 55),
(6, 55),
(1, 42),
(11, 42),
(8, 42),
]
# Group up people by post ID
for user_id, post_id in data:
by_post_id[post_id].add(user_id)
# (`by_post_id` will look like {55: {1, 2, 6}, 42: {8, 1, 11}})
# Walk over each post...
for post_id, user_ids in by_post_id.items():
# ... and generate all pairs of user IDs.
for combo in combinations(user_ids, 2):
print(post_id, combo)
这输出
55 (1, 2)
55 (1, 6)
55 (2, 6)
42 (8, 1)
42 (8, 11)
42 (1, 11)
当然,如果您不关心这对 post_id
,请忽略它。