Python слияние на основе позиции столбца - PullRequest
0 голосов
/ 04 октября 2018

У меня есть 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 кадра данных на *Столбец 1008 * без упоминания имени столбца, а только с указанием только положения столбца.

Теперь я попытался что-то вроде этого,

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.Так может ли кто-нибудь помочь мне с этим?

Ответы [ 2 ]

0 голосов
/ 04 октября 2018

Вы можете использовать list(df) для доступа к списку имен столбцов, на которые вы можете ссылаться по позиции:

merged = pd.merge(df1, df2, left_on = list(df1)[1], right_on = list(df2)[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
0 голосов
/ 04 октября 2018

Попробуйте это:

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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...