我对SQL很有经验,但对Python还是个新手。
我正在尝试使用join或pandas.merge函数来完成以下简单的SQL Join:
SELECT
a.Patient_ID,
a.Physician,
b.Hospital
FROM DF1 a
INNER JOIN DF2 b
on a.Patient_ID=b.Patient_ID_Number
下面是我得到的最接近的结果:
import pandas as pd
output=pd.merge(DF1, DF2, how='inner', left_on='Patient_ID', right_on='Patient_ID_Number')
但是,这会产生与以下SQL查询等效的结果:
SELECT
*
FROM DF1 a
INNER JOIN DF2 b
on a.Patient_ID=b.Patient_ID_Number
我不熟悉索引或键,所以我现在只尝试实现一个简单的代码转换。如果它不是完整的,而只是一个很好的功能,我会在以后学习它。
谢谢!
发布于 2018-06-16 05:20:08
您可以在join语句中指定列:
output=pd.merge(DF1[['Patient_ID','Physician']], DF2[['Hospital','Patient_ID_Number']], how='inner', left_on='Patient_ID', right_on='Patient_ID_Number')
您必须将语句中要连接的两列都传递下去
您可以指定在join语句之前保留哪些列
DF1=DF1[['Patient_ID','Physician']]
DF2=DF2[['Patient_ID_Number','Hospital']]
output=pd.merge(DF1, DF2, how='inner', left_on='Patient_ID', right_on='Patient_ID_Number')
或者只保留join语句后面的列
output=output[['Patient_ID','Physician','Hospital']]
https://stackoverflow.com/questions/50882613
复制相似问题