Работа с несколькими таблицами Excel: выборка по условию
Подскажите новичку, через какой модуль в Python можно выполнить следующую процедуру и как? Обычно я использую pandas и openpyxl, но сейчас не хватает опыта, чтобы составить условие.
Есть две таблицы Excel с одинаковым столбиком "Название лекарств" и по два столбика в каждой таблицы с минимальным и максимальным значением их цены. Необходимо на выходе получить новую таблицу, где мы получим только те лекарства, которые есть в двух аптеках, и диапазон цен во второй аптеке будет укладываться в диапазон первой.
К примеру, названия совпадают, и мин.цена массива 1 < мин.цена массива 2, а макc.цена массива 1> макc.цена массива 2, то включить в новую таблицу всю строку.
Начал так, но это просто мысли, а не код - так как, наверное, и половины нет от необходимых данных...
import pandas as pd
import numpy as np
import re
df_a1=pd.read_excel(r'C:\apteka_1.xlsx', dtype='str')
df_a2=pd.read_excel(r'C:\apteka_2.xlsx', dtype='str')
if df_a1['Лекарства'] = df_a2['Лекарства']
if df_a1['min_price_1'] < df_a2['min_price_2']
if df_a1['max_price_1'] > df_a2['max_price_2']
df.to_excel('itog.xlsx',index=False)
Ответы (1 шт):
df_1 = pd.DataFrame(
{'Лекарства': ['Терафлю', 'Колдрекс', 'Активированный уголь', 'Мезим Форте'], 'min_price': [500, 400, 10, 350],
'max_price': [600, 500, 20, 450]})
df_2 = pd.DataFrame(
{'Лекарства': ['Колдрекс', 'Мезим Форте', 'Активированный уголь', 'Терафлю'], 'min_price': [420, 310, 5, 550],
'max_price': [440, 320, 15, 560]})
df = df_1.merge(df_2, on='Лекарства')
mask = df['min_price_x'].lt(df['min_price_y']) & df['max_price_x'].gt(df['max_price_y'])
res = df_1.loc[mask[mask].index]
print(res)
Лекарства min_price max_price
0 Терафлю 500 600
1 Колдрекс 400 500