繁体   English   中英

逐行最大/最小熊猫

[英]Rowwise max/min in pandas

我想做这样的事情:

df['A'] = max(0, min(df.B, df.C - df.D))

但是,我得到一个ValueError (“系列的真值是模棱两可的”),我想这意味着maxmin函数正在幕后进行一些布尔运算,并且这不会分布在Series上。 我知道您可以通过例如获取某些列的最小值/最大值

df[['col1','col2','col3']].max(axis = 1)

因此,我应该能够通过制作一些带有中间值的临时列来获得所需的输出,但是我想要一个直接执行此操作的干净解决方案。 如何做到这一点,而不必为多余的中间值添加额外的列?

maxmin是内置的Python函数。 它们不是为Pandas / NumPy随附的矢量化功能而设计的。

相反,您可以使用np.maximum / np.minimum进行np.minimum元素计算:

import numpy as np

df['A'] = np.maximum(0, np.minimum(df['B'], df['C'] - df['D']))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM