首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Python中执行SQL类型的内连接,并且只命名几个列名?

如何在Python中执行SQL类型的内连接,并且只命名几个列名?
EN

Stack Overflow用户
提问于 2018-06-16 05:02:17
回答 1查看 4.2K关注 0票数 1

我对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

我不熟悉索引或键,所以我现在只尝试实现一个简单的代码转换。如果它不是完整的,而只是一个很好的功能,我会在以后学习它。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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']]
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50882613

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档