gpt4 book ai didi

python - Pandas DataFrame - 'pairwise' 连接作为基于唯一 id 的新列

转载 作者:太空宇宙 更新时间:2023-11-03 14:16:49 24 4
gpt4 key购买 nike

我有一个如下所示的数据框:

        id  name
0 12 molly
1 12 james
2 10 adam
3 8 susan
4 10 molly
5 9 pete
6 2 james
7 10 Bob
8 8 james
9 2 adam
10 12 Gary

我想根据 id 号创建“成对”列,列为“name_x”和“name_y”,其中两个名称具有相同的 id,如下所示:

    id  name_x  name_y
0 12 molly james
1 12 molly gary
2 12 gary james
3 10 adam molly
4 10 adam Bob
5 10 molly Bob
6 8 susan james
7 2 james adam

我知道在某个地方一定有一个解决方案,但我想不出正确的术语来找到它!

最佳答案

让我们使用itertools.combiniations:

from itertools import combinations

df.groupby('id')['name']\
.apply(lambda x: pd.DataFrame((i for i in combinations(x.values,2))))\
.reset_index().drop('level_1',axis=1)\
.rename(columns={0:'name_x',1:'name_y'})

输出:

   id name_x name_y
0 2 james adam
1 8 susan james
2 10 adam molly
3 10 adam Bob
4 10 molly Bob
5 12 molly james
6 12 molly Gary
7 12 james Gary

关于python - Pandas DataFrame - 'pairwise' 连接作为基于唯一 id 的新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48196275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com