Python数据子集-选择值。。。从DF1。。。其中值存在于DF2中
我试图创建一个数据帧,部分是通过查看另一个数据帧中是否存在值。以下是我尝试执行的SQL版本:Python数据子集-选择值。。。从DF1。。。其中值存在于DF2中,python,sql,pandas,dataframe,subset,Python,Sql,Pandas,Dataframe,Subset,我试图创建一个数据帧,部分是通过查看另一个数据帧中是否存在值。以下是我尝试执行的SQL版本: SELECT * FROM DF1 WHERE Patient_alive='still_alive' AND Patient_ID in (SELECT Pat_ID from DF2) 这是我正在苦苦挣扎的代码,最后一行是我无法理解的,我有两个关于PT_ID的伪代码版本: DF3 = DF1[ (DF1['Patient_alive'].str.contains('still_
SELECT *
FROM DF1
WHERE
Patient_alive='still_alive'
AND Patient_ID in (SELECT Pat_ID from DF2)
这是我正在苦苦挣扎的代码,最后一行是我无法理解的,我有两个关于PT_ID的伪代码版本:
DF3 = DF1[
(DF1['Patient_alive'].str.contains('still_alive', case=False))&
#(DF1['PT_ID'].isin(DF2))
(DF1['PT_ID'].contains(DF2, case=False))
]
更新1:
df1的输入数据:
Patient_ID | Patient_Alive | Patient_Name
12345 | StillAlive | Knowles, Archibald
23456 | NotAlive | Hauzer, Bruno
911235 | StillAlive | Samarkand, Samsonite VII
df2的输入数据:
PT_ID
12345
22222
55555
99999
Df3期望输出:
Patient_ID | Patient_Alive | Patient_Name
12345 | StillAlive | Knowles, Archibald
这是一个良好的开端。您可以发布您的示例输入数据和预期输出数据吗?有关更多信息,请参阅。由于两个数据帧共享密钥,您不能在
Patiend\u ID
/Pat\u ID
上进行联接吗?相关方法:我更新了df1和df2的样本。我将按照tugayac的建议尝试join方法,否则我将非常感谢关于如何在我开始使用的代码中处理这个问题的任何想法。我也认为join是最好的方法,但是如果您真的想这样做,那么最后一行应该是类似于DF2['PT_ID'].contains(DF1['Patient_ID'])
?请尝试isin()
,而不是包含。