Ошибка 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")