минимум из колонок на основе словаря

Есть словарь с перечнем определённых названий колонок, относящихся к определённому товару. И есть датафрейм, в котором имеются перечисленные в словаре колонке, а также другие колонки. Как получить в pandas колонку с минимальным значением по каждому товару только из колонок, которые имеются для этого товара в словаре?

import pandas as pd
slov={'Товар1':['Колонка1','Колонка3'],
'Товар2':['Колонка2','Колонка4']
        }
df=pd.DataFrame({
            'Колонка0':['Товар1','Товар2'],
            'Колонка1':[20,25],
            'Колонка2':[89,15],
            'Колонка3':[26,30],
            'Колонка4':[40,108],
            'Колонка5':[55,2]
            })
df["Мин"]=?

Я пробовала

df["Мин"]=df[df.columns[df.columns.isin(slov)]].min(axis=1)

но это не сработало, колонка заполняется значениями NaN


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

Автор решения: Алексей Р
df["Мин"] = df.apply(lambda x: x.loc[slov[x['Колонка0']]].min(), axis=1)
df["МинКол"] = df.apply(lambda x: x.loc[slov[x['Колонка0']]].idxmin(), axis=1)
  Колонка0  Колонка1  Колонка2  Колонка3  Колонка4  Колонка5  Мин    МинКол
0   Товар1        20        89        26        40        55   20  Колонка1
1   Товар2        25        15        30       108         2   15  Колонка2
→ Ссылка