求DataFrame三列最大值报错:The truth value of a Series is ambiguous
问题解决:DataFrame按行取多列最大值填充新列
错误原因
你用Python内置的max()函数处理Pandas的Series(比如df.loc[:,'TR0']这类列对象)时,该函数无法直接判断整个Series的布尔值,因此会抛出The truth value of a Series is ambiguous的错误。
正确代码
使用Pandas自带的max()方法,指定axis=1参数按行计算最大值即可:
df['TR'] = df[['TR0', 'TR1', 'TR2']].max(axis=1)
如果习惯用loc写法,也可以这样写:
df.loc[:, 'TR'] = df.loc[:, ['TR0', 'TR1', 'TR2']].max(axis=1)
效果验证
运行代码后,你的DataFrame会更新为:
| TR0 | TR1 | TR2 | TR |
|---|---|---|---|
| 3.25 | 2.19 | 0.15 | 3.25 |
| 3.0 | 0 | 0.14 | 3.0 |
内容的提问来源于stack exchange,提问作者Alex5672
相关产品推荐
相关产品推荐

