首页 > 解决方案 > 如何在另一个数据框列中选择值等于 unqiue 值的行?

问题描述

我有两个数据框如下:

df1:

col1 col2
美国广播公司 1
定义 22
定义 32
aac 53
ddf 53
tefg 53

df2:

col1
美国广播公司
定义
aac
ddf
tefg

现在我想保留 df1 中的行,这样 df1 中列“col1”的值存在于 df2“col2”中

有没有一种简单直接的方法可以在 Python 中实现它?

目前,我使用 2 个嵌套的 for 循环以粗暴的方式执行此操作,但它的计算量很大。

标签: pythonpandasdataframe

解决方案


你可以做:

df1[df1.col1.isin(df2.col1)]

例子:

创建df1

data = {'col1': ['a','b','c','d'],
        'col2': [1,2,3,4]}
df1 = pd.DataFrame(data)

df2

df2 = pd.DataFrame({'col1': ['a','d']})

那么df1[df1.col1.isin(df2.col1)]将是:

  col1  col2
0    a     1
3    d     4

推荐阅读