Сбой слияния, когда фрейм данных имеет несколько столбцов с одинаковым именем - PullRequest
1 голос
/ 13 июля 2020

Это продолжение этого вопроса .

Я пытаюсь объединить два фрейма данных в общем столбце, но один фрейм данных имеет несколько столбцов с одинаковым именем. Я хочу использовать этот столбец для слияния.

Это мои фреймы данных:

df1 = pd.DataFrame([['abc', 'xyz'], ['abc', 'xyz'], ['xyz', 'abc']], columns=['max_speed', 'min_speed'])
df2 = pd.DataFrame([['abc', 'xyz'], ['abc', 'xyz'], ['xyz', 'abc']], columns=['max_speed', 'max_speed'])

У меня есть особый случай, когда мой фрейм данных имеет несколько столбцов с одинаковым именем ( ссылка ).

Я пытался использовать расположение столбца, а не имя столбца для доступа, но не сработало

Что я пробовал:

df3 = df1.merge(df2, right_on=df1.columns[0],left_on=df2.columns[0])

Ошибка:

ValueError: метка столбца max_speed не уникальна.

Сообщите мне, как я могу решить эту проблему.

1 Ответ

1 голос
/ 13 июля 2020

вы можете set_index с столбцом в нужной позиции в df2, затем используйте merge с right_index=True.

print (df1.merge(df2.set_index(df2.iloc[:,0])
                    .iloc[:, 1:], #to select only the other column max_speed
                 left_on='max_speed', right_index=True, 
                 suffixes=('','_'))
      )
  max_speed min_speed max_speed_
0       abc       xyz        xyz
0       abc       xyz        xyz
1       abc       xyz        xyz
1       abc       xyz        xyz
2       xyz       abc        abc
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...