首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >为sql查询(包括:连接表本身)制作等价的数据,并选择第一表的所有列和右表的某些列

为sql查询(包括:连接表本身)制作等价的数据,并选择第一表的所有列和右表的某些列
EN

Stack Overflow用户
提问于 2017-02-02 04:18:39
回答 1查看 657关注 0票数 1

我在研究巨蟒熊猫。我有一个表table_one,它有name,address,one,two,phone列。现在one是foreign_key on two

现在,我希望熊猫在这个外键上做连接,结果数据freame应该给出如下的结果:

输入dta框架

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Id name Address one two nuber
1 test | addrs | 1 | 2 | number
2 fert | addrs | 2 | 1 | testnumber
3 dumy | addrs | 3 | 9 | testnumber

外置应是:

将此df(数据帧)连接到自己,并获取其外键的名称,即两个o/p:获取左表的所有列,而在熊猫中只有右表中的名称表示下一行1:onetwo上的外键,因此op将是

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
1 test addrs 1 2 number fert

对于所有用于第1行的方法,one值1都映射到列two,第2列的值为two' so take name for ` in的结果新列的值1。

我试过在下面

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pd.merge(df, df, left_on=['one'], right_on=['two'])

但是没有得到所需的结果,它也给出了右表的所有列,但是我只想要name值和左表的所有库仑。

任何帮助都将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-02 07:35:38

在合并前选择必需的列(重命名以避免冲突)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pd.merge(df, df[['two', 'name']].rename(columns={'name', 'for_name'}), left_on=['one'], right_on=['two'])
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42002105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文