我想创建一个列,其最大值介于从数据框的其他列计算的 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/