将一列添加到数据框中,其中每个项目的最小值仅来自字典对应的列。如何在计算最小值时添加条件 - 如果所选列中的值大于“Col7”列中的值?
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]
})