python-2.7 - 基于列位置的Python合并
问题描述
我有2个这样的数据框,
ID employee group
1 Bob Accounting
2 Jake Engineering
3 Lisa Engineering
4 Sue HR
ID employee hire_date
1 Lisa 2004
2 Bob 2008
3 Jake 2012
4 Sue 2014
现在我想在employee
列上合并这两个数据框。唯一的问题是,与其提及列名employee
,我只需要提及我会知道的员工列的位置。
简而言之,我想合并列上的 2 个数据框employee
而不提及列名,而仅提及列位置。
现在我尝试了这样的事情,
import pandas as pd
df1 = pd.DataFrame({'ID':[1,2,3,4], 'employee': ['Bob', 'Jake', 'Lisa', 'Sue'],
'group': ['Accounting', 'Engineering', 'Engineering', 'HR']})
df2 = pd.DataFrame({'ID':[1,2,3,4],'employee': ['Lisa', 'Bob', 'Jake', 'Sue'],
'hire_date': [2004, 2008, 2012, 2014]})
merged = pd.merge(df1, df2, left_on=df1.ix[:,[1]], right_on=df2.ix[:,[1]])
但它正在抛出ValueError。那么有人可以帮我解决这个问题吗?
解决方案
尝试这个:
df1.merge(df2, right_on=df2.columns[1], left_on=df1.columns[1])
输出:
ID_x employee group ID_y hire_date
0 1 Bob Accounting 2 2008
1 2 Jake Engineering 3 2012
2 3 Lisa Engineering 1 2004
3 4 Sue HR 4 2014
推荐阅读
- javascript - Chrome 扩展程序和 gmail.js 阻止访问 google api
- highcharts - highcharts:如何更改上面图表的颜色?
- javascript - 有条件地分配对象值?
- javascript - javascript 中的 Promise 是如何工作的?我的 Promise 实现不一样
- c - 关于 C 中的联合
- git - 无法提交任何东西
- python - 为什么我的格式化程序函数接收索引而不是轴值?
- applescript - 简单的 AppleScript 启用一个 macOS 邮件帐户,禁用另一个?
- c# - 基于另一列添加多列
- c# - 如何根据条件从列表中获取元素列表