Ошибка dataframe.merge(): MergeError: No common columns to perform merge on

Пытаюсь объединить два DataFrame. Хочу их "сложить" по столбцу Имя, но почему-то выдает ошибку:

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "D:\Программы\PyCharm 2020.1\plugins\python\helpers\pydev\_pydev_bundle\pydev_umd.py", line 197, in runfile
    pydev_imports.execfile(filename, global_vars, local_vars)  # execute the script
  File "D:\Программы\PyCharm 2020.1\plugins\python\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "D:/Рабочая папка/Работа/Соц. сети/Актуализация цен в VK/test.py", line 7, in <module>
    a.merge(b)
  File "C:\Users\musix\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\frame.py", line 8192, in merge
    return merge(
  File "C:\Users\musix\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\reshape\merge.py", line 74, in merge
    op = _MergeOperation(
  File "C:\Users\musix\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\reshape\merge.py", line 650, in __init__
    self._validate_specification()
  File "C:\Users\musix\AppData\Local\Programs\Python\Python39\lib\site-packages\pandas\core\reshape\merge.py", line 1283, in _validate_specification
    raise MergeError(
pandas.errors.MergeError: No common columns to perform merge on. Merge options: left_on=None, right_on=None, left_index=False, right_index=False

Вот что находится этих двух DataFramе:

                Артикул                                                Имя
0                 13713                Двигатель Aurora АЕ-9/Р (со шкивом)
1                 13716              Двигатель Aurora АЕ-14D/Р (со шкивом)
2                 13715               Двигатель Aurora АЕ-14/Р (со шкивом)
3                 13714               Двигатель Aurora АЕ-9D/Р (со шкивом)
4                 13712               Двигатель Aurora АЕ-7D/Р (со шкивом)
                 ...                                                ...
1134    504.5.05.110.01  Сменный ствол на монтажный пистолет Toua GSN50...
1135  504.5.05.110.01.2  Сменный ствол на монтажный пистолет Toua GSN50...
1136           gncs-520                      Спрей для чистки инструментов
1137           sdi-toua                         Сумка для инструмента Toua
1138            85-0002     Универсальный очиститель Rexant CLEANER 400 мл
[1139 rows x 2 columns]
                                                   Name  ID in VK
0                   Двигатель Aurora АЕ-9/Р (со шкивом)   4745231
1                 Двигатель Aurora АЕ-14D/Р (со шкивом)   4745230
2                  Двигатель Aurora АЕ-14/Р (со шкивом)   4745229
3                  Двигатель Aurora АЕ-9D/Р (со шкивом)   4745228
4                  Двигатель Aurora АЕ-7D/Р (со шкивом)   4745227
                                                 ...       ...
1027   Масло моторное FUBAG Extra Pro SL/CF (SAE 5W-40)   4659064
1028             Масло моторное Fubag Extra (SAE 10W40)   4659063
1029                      Масло моторное Fubag 2Т Extra   4659062
1030  Блок автоматики FUBAG Startmaster DS 25000 D (...   4659056
1031  Блок автоматики FUBAG Startmaster DS 25000 (230V)   4659055
[1032 rows x 2 columns]

Вот код:

import pandas as pd

a = pd.read_csv('Арт и имя.csv')
b = pd.read_csv('borisych.csv')
print(a)
print(b)
a.merge(b)
print(a)

Ответы (1 шт):

Автор решения: MaxU

Если имя столбца, по которому идет объединение не совпадает, тогда его необходимо указать явно, о чем говорит ошибка:

pandas.errors.MergeError: No common columns to perform merge on. Merge options: left_on=None, right_on=None, left_index=False, right_index=False

Попробуйте так:

res = a.merge(b, left_on="Имя", right_on="Name")
→ Ссылка