所以我有一个数据框,它有四种颜色和数值,我想在数据框中添加一列,该列具有两列相加所得两个和的最大值。
目前为止我的解决方案是
from pandas import DataFrame
df = DataFrame(data={'text': ['a','b','c'], 'a':[1,2,3],'b':[2,3,4],'c':[5,4,2],'d':[-2,4,1]})
df['sum1'] = df['a'].add(df['b'])
df['sum2'] = df['c'].add(df['d'])
df['maxsum'] = df[['sum1','sum2']].max(axis=1)
这给出了期望的结果。
我很确定,有一个更简洁的方法...
2条答案
按热度按时间oknrviil1#
您的方法没有任何问题。事实上,如果只是因为它易于阅读和理解您正在做的事情,我就会采用这种方法。但如果您正在寻找其他解决方案,这里有一个使用numpy.ufunc.reduceat的解决方案
4c8rllxm2#
这并不是说它更简洁,但你可以用"一次性"分配来代替你目前的方法: