pandas matchcompare多列

我想通过两列比较两个pandas表。请看下面的例子。我想得到一个布尔值Series,它只在两个条件匹配时才显示为真。我试过is.in(),但不太成功。我可以在 “一 “上循环,或者在两个数据帧中把两列合并(添加)在一起,但是pandas是否有一些内置的功能,可以允许这种涉及两对列的(嵌套)比较?

tab1 = pd.DataFrame({"One": [1, 1, 2, 3],
                     "Two": ["A", "B", "C", "C"]})

tab2 = pd.DataFrame({"One": [1, 2, 2, 3, 3],
                     "Two": ["A", "A", "B",  "A","C"]})

# Desired Result (New column in tab1): [True, False, False, True]

EDIT:第二个表更像一个查找表。它们的形状不一样。应该把这一点说得更清楚。

解决方案:

IIUC

tab1.eq(tab2).all(1)
0     True
1    False
2    False
3     True
dtype: bool

更新

tab1.merge(tab2,indicator=True,how='left')['_merge'].eq('both')
0     True
1    False
2    False
3     True
Name: _merge, dtype: bool

给TA打赏
共{{data.count}}人
人已打赏
未分类

在python中分割文件 - 更快的方式

2022-9-13 15:57:35

未分类

使用jQuery $(this)与ES6箭头函数(词法this绑定)

2022-9-13 15:57:37

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索