具有重复数据集的数据集上的自联接

2024-06-15 17:44:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在我的数据集上执行与自连接或vlookup等效的操作。问题是,我的数据集中有重复项,因此这会将数据集的大小增加5

我无法删除重复项,因为我的数据集中需要它们

为了给您提供上下文,这里有一个示例,展示了我的数据集的外观

name  pts  opp  
 a     7    b
 c     6    b
 d     5    b
 a     7    c
 b     9    d
 d     5    c

这个想法是返回另一个pts列,在这里我查看与opp相关的pts。因此,所需的输出将是

name  pts  opp  pts
 a     7    b    9
 c     6    b    9
 d     5    b    9
 a     7    c    6
 b     9    d    5
 d     5    c    6

Tags: 数据name示例pts外观集上oppvlookup
1条回答
网友
1楼 · 发布于 2024-06-15 17:44:36

由于您说opp列不会包含来自name列的任何重复值,因此可以在name列上^{}并创建映射器系列,然后使用^{}将其映射回:

df['pts2']=df['opp'].map(df.drop_duplicates('name').set_index('name')['pts'])

  name  pts opp  pts2
0    a    7   b     9
1    c    6   b     9
2    d    5   b     9
3    a    8   c     6
4    b    9   d     5
5    d    2   c     6

相关问题 更多 >