По каким причинам может не происходить слияние датафреймов в pandas?

Есть два датафрейма: df и uni. У них есть множество одинаковых артикулов. На фото видим только один схожий, но этого достаточно для примера. Пример двух датафреймов

Я пытаюсь объединить эти датафреймы по артикулу вот таким кодом:

uni = pd.read_csv('C:/Users/Admin/Desktop/My Job/Reserve_file/United 
Music.csv')[['Артикул', 'Наличие', 'ОПТ']]
df = pd.merge(df, uni, left_on = 'United Music', right_on = 'Артикул', how = 'left')
df.loc[df['Наличие'] == 0, 'ОПТ'] = pd.NA

и на выходе получаю вот такую картину: введите сюда описание изображения

Но беда в том, Что все значения во всех добавленных полях пустые, хотя по условию должно быть так, что если артикулы добавляемых полей одинаковы, то цену ОПТ проставляется в итоговый датафрейм. Это работает на 13-ти других прайсах, которые я прогрузил сегодня по такой схеме, но вот два прайса не хотят прогружаться и я не понимаю почему. Я понимаю, что дело в том, Что при сравнении артикулов программа не видит схожести, даже в схожих артикулах, но почему так происходит именно в двух прайсах из 15 не понятно. Типы объединяемых столбцов одинаковые - строки. введите сюда описание изображения Буду крайне признателен. Спасибо!


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

Автор решения: Зарина

Не могу оставлять комментарии, поэтому напишу в ответ - раз тип данных object, то убедитесь, что в строку не закрался пробел. Судя по коду, явных ошибок нету. Тем более, что один артикул все-таки прогрузился, это говорит об отсутствии фундаментальных ошибок.

Чтобы все значения колонки "обрезать" по концам, примените функцию apply, вот пример:

uni["Артикул"] = uni["Артикул"].apply(lambda x: x.strip())
→ Ссылка