将一列添加到收件箱中,每个项的最小值仅来自字典对应的列.如果所选列中的值大于列"Col 7"中的值,在计算最小值时如何添加条件?
import pandas as pd
my_dict={'Item1':['Col1','Col3','Col6'],
'Item2':['Col2','Col4','Col6','Col8']
}
df=pd.DataFrame({
'Col0':['Item1','Item2'],
'Col1':[20,25],
'Col2':[89,15],
'Col3':[36,30],
'Col4':[40,108],
'Col5':[55,2],
'Col6':[35,38],
'Col7':[30,20]
})
df['min']=df.apply(lambda r:r[[col for col in my_dict.get(r['Col0'], []) if col in r]].min(),axis=1)
结果应该是:
df=pd.DataFrame({
'Col0':['Item1','Item2'],
'Col1':[20,25],
'Col2':[89,15],
'Col3':[36,30],
'Col4':[40,108],
'Col5':[55,2],
'Col6':[35,38],
'Col7':[30,20],
'min':[35,38]
})