python - 熊猫匹配/比较多列
问题描述
我想按两列比较两个熊猫表。考虑以下示例:我想获得一个布尔系列,它仅在两个条件匹配时才指示为真。我试过 is.in() 没有太大成功。我可以在两个数据帧中循环“一个”或将两个列组合(添加)在一起,但是熊猫的一些内置功能是否允许涉及两对列的这种(嵌套)比较?
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]
编辑:第二个表更像是一个查找表。它们没有相同的形状。应该更清楚地说明这一点。
解决方案
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
推荐阅读
- java - 我如何在 Java 中解密 openssl?
- kubernetes - 在 GRPC 服务上使用 JWT 进行 Istio 最终用户身份验证
- java - equals() is not giving expected results
- java - gRPC 会是一个不错的选择吗,并且可以从客户端优雅地终止
- c# - 如何在 ASP.NET Core 中设置正确的日期格式
- c++ - 堆分配数组的基于范围的for循环
- hyperledger-fabric - Hyperledger Fabric 的默认配置是什么?
- matlab - MATLAB:如何在 4 连杆机构上固定另一个杆?
- python - 使用和不使用站点包创建的 virtualenv 中的 pip freeze
- r - 无法添加额外的 geom_line 到绘图