python - 如何使用 DataFrame 中的每一行来过滤查询
问题描述
我有一个我无法解决的问题。
我有一个像这样的 Pandas 数据框:
LastName FirstName Goals
0 Messi Lionel 10
1 Donovan Landon 7
2 Hazard Eden 5
我需要查询 Teradata,从另一个表中获取数据,通过 DataFrame 上每个人的 LastName 和 FirstName 过滤结果,如下所示:
"Select * from Table1 where (LastName= 'Messi' and FirstName='Lionel) or (LastName='Donovan' and FirstName='Landon') or (LastName='Hazard' and FirstName='Eden')"
我已经尝试过一些循环,但我无法做到这一点,以获取每一行并添加 or 语句。有没有人有解决它的想法?
提前致谢!
解决方案
我们通常可以做merge
cond=pd.DataFrame({'FirstName':['Lionel','Landon','Eden'], 'LastName':['Messi','Donovan','Hazard']})
df=df.merge(cond, how='inner')
推荐阅读
- r - 用函数创建矩阵
- c++ - 为什么我会收到“警告:控制到达非无效函数的结尾”和 switch-case?
- vue.js - 在单个文件组件中使用路由器链接
- gremlin - 使用父顶点属性过滤掉正在运行的顶点
- c# - 如何使用对象返回 BadRequest?
- .net - TcpListener.AcceptSocket 什么时候应该优先于 TcpListener.AcceptTcpClient?
- php - 如何将关联数组项推入具有重复键的关联数组?
- c# - 用文件夹中的文件名填充 DataGridView
- java - 当我们可以使用 = 操作符复制对象时,为什么还要使用 clone()?
- html - 如何去除导航栏部分品牌名称的悬停效果?