Как сопоставить данные, сделать сравнение двух DataFrames Pandas по одинаковым значениям в одной колонке?

Осваиваю Pandas, пытаюсь написать скрипт для сравнения цен товаров из прайс листа поставщика и цен в базе данных интернет магазина.

Поставщик регулярно присылает прайс-листы в Excel – формате, данные содержат колонки:
  • name – название товара,
  • art_namber – артикул, уникальный номер товара
  • price – цена товара

Из базы данных интернет магазина в excel – файл выгружаю аналогичные данные: id – товара в базе, название, артикулом товара и цена.
Артикулы товаров (поле art_namber) в обоих таблицах совпадают, для каждого товара.

В результате чтения прайс листов поставщика и выгрузки из интернет магазина – получаю два дата фрейма:

6368ef51e0b12102591514.jpeg

А вот что делать дальше не понимаю, как сопоставить данные строк в обоих таблицах по значениям в колонках art_namber и получить новый дата фрейм – в котором будут данные цены из прайс-листа поставщика, для загрузки в базу-данных интернет магазина?
Как используя Pandas, на основе приеденных данных. получить новый DataFrame, колонки которого будут содержать: id, name, art_namber, old_price, new_price?

Решая аналогичную задачу на PHP, крутил данные в циклах, формировал новый массив, но полагаю, используя Pandas, эту задачу можно выполнить изящней. А вот как? Подскажите наиболее рациональный на Ваш взгляд способ.
  • Вопрос задан
  • 801 просмотр
Решения вопроса 1
fenrir1121
@fenrir1121
Начни с документации
DataFrame.merge
Поскольку в вашем случае у поля разное имя в таблицах объединение будет выглядеть так
pd.merge(df1, df2, left_on="code", right_on="art_namber")
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы