如果'max215'大于'max'或小于min2015,如果'min2015'小于'min',我希望我的DataFrame列'extrema'为'max2015'
我认为用df.apply-lambda组合来解决这个问题是最优雅的方法,但我无法用这个解决方案。
代码:
x['extrema'] = x.apply(lambda df: df['max2015'] if df['max2015'] > df['max']
else df['min'] if df['min2015'] > df['min']
else np.nan,
axis=1)
我得到以下结果,这不是正确的解决方案。
我的错误或其他好的解决方案是什么?
提前谢谢!
答案 0 :(得分:1)
也许您正在寻找np.select
即
Import numpy as np
df = x.copy()
df['extrema'] = np.select([df['max2015']>df['max'],df['min2015']>df['min']],[df['max2015'],df['min2015']],np.nan)