首页 > 解决方案 > 如何使用 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 语句。有没有人有解决它的想法?

提前致谢!

标签: pythonpandasfor-loopteradata-sql-assistant

解决方案


我们通常可以做merge

cond=pd.DataFrame({'FirstName':['Lionel','Landon','Eden'], 'LastName':['Messi','Donovan','Hazard']})
df=df.merge(cond, how='inner')

推荐阅读