Pandas. Объединение с условием
Есть два датафрейма. Объединяю их по двум нужным столбцам, в которых есть одинаковые значения. Подскажите, как сделать так, что бы при объединении последний столбец "ОПТ" выводил данные только в том случае, если наличие Не равно нулю или не пустое. Или по другому: Если наличие ноль или пустое значение, то цена, в столбце "ОПТ" оставалась пустой ячейкой. Так же после преобразования необходимо удалить стобцы "Артикул" и "Наличие".
Спасибо. Всем здоровья.
import pandas as pd
goods = pd.DataFrame({'Модель': ['Гитара', 'Пианино', 'Барабан', 'Скрипка', 'Укулеле'], 'Attrade': ['A114980', 'A222', 'A150136', 'A050344', 'A7444']})
suppliers = pd.DataFrame({'Поставщик': ['Attrade', 'Attrade', 'Attrade','Attrade', 'Attrade', 'Attrade', 'Attrade'], 'Артикул': ['A114980', 'A222', 'A333', 'A7444', 'A150136', '666', 'A050344'], 'Наличие': ['>5', '0', '0', '0', 'в наличии', '0', '2'], 'ОПТ': ['13200', '78000', '8600', '12500', '6500', '4610', '6540']})
merged = pd.merge(goods, suppliers, left_on = 'Attrade', right_on = 'Артикул', how = 'left')
Ответы (1 шт):
Автор решения: CrazyElf
→ Ссылка
Если я всё правильно понял:
merged.loc[(merged['Наличие'] == '0')|(merged['Наличие'] == ''), 'ОПТ'] = pd.NA
merged = merged.drop(columns=['Артикул', 'Наличие'])
merged
Вывод:
Модель Attrade Поставщик ОПТ
0 Гитара A114980 Attrade 13200
1 Пианино A222 Attrade <NA>
2 Барабан A150136 Attrade 6500
3 Скрипка A050344 Attrade 6540
4 Укулеле A7444 Attrade <NA>
По крайней мере методику я вам показал, детали можете сами подрихтовать.
