python - 使用来自其他列的最多两个计算值创建 Pandas 列

标签 python pandas dataframe max

我想创建一个列,其最大值介于从数据框的其他列计算的 2 个值之间。

import pandas as pd
df = pd.DataFrame({"A": [1,2,3], "B": [-2, 8, 1]})

df['Max Col'] = max(df['A']*3, df['B']+df['A'])


ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().

所需的结果是一个新的 df 列 ['Max Col'] 具有上述计算的最大值。

我知道有一个很长的解决方案,即使用计算创建两个新列,然后应用 .max(axis=1)。我正在寻找一个直接的解决方案。

谢谢。

最佳答案

使用 np.maximum :

df['max'] =np.maximum(df['A']*3, df['B']+df['A'])

输出:
   A  B  max
0  1 -2    3
1  2  8   10
2  3  1    9

关于python - 使用来自其他列的最多两个计算值创建 Pandas 列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61754710/

相关文章:

python - 如何使用pytorch同时迭代两个数据加载器?

python - 读取文本文件并将文件从其中移动到目录

python - 内存错误和训练部署分离

python - 按顺序为数据框中的多行从列表中分配多个值

python - 如何将 4d RGB 图像数据转换为 LogisticRegression 的 2d 数组

python - 如何查找输入中的列表数? (Python)

python - Pandas 在使用 apply 方法时删除了 lambda

python - 如何获取数据框列值的平均值

python - pandas df.apply 意外更改数据框

python - 使用 pandas 创建平均数据框