Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 按行最大值/最小值(以大熊猫为单位)_Python_Pandas - Fatal编程技术网

Python 按行最大值/最小值(以大熊猫为单位)

Python 按行最大值/最小值(以大熊猫为单位),python,pandas,Python,Pandas,我想这样做: df['A'] = max(0, min(df.B, df.C - df.D)) 但是,我得到了一个ValueError(“序列的真值是不明确的”),我猜这意味着max和min函数在引擎盖下执行一些布尔运算,这不会分布在序列上。我知道您可以通过以下方式获得某些列集合的最小/最大值: df[['col1','col2','col3']].max(axis = 1) 因此,我应该能够通过使用中间值创建一些临时列来获得所需的输出,但我希望有一个干净的解决方案可以直接实现这一点。如何做

我想这样做:

df['A'] = max(0, min(df.B, df.C - df.D))
但是,我得到了一个
ValueError
(“序列的真值是不明确的”),我猜这意味着
max
min
函数在引擎盖下执行一些布尔运算,这不会分布在序列上。我知道您可以通过以下方式获得某些列集合的最小/最大值:

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

因此,我应该能够通过使用中间值创建一些临时列来获得所需的输出,但我希望有一个干净的解决方案可以直接实现这一点。如何做到这一点而不必为一次性中间值创建额外的列?

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

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

import numpy as np

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

谢谢,这正是我想要的。