pandas dataframe将列比较为常量



我有一个代码:

df = pd.DataFrame([{'a': 1, 'b': 2}])
df['c'] = min(5, df['a'] + df['b'])

我的目标是添加一个列'c'作为一个常数的最小值和列'a'和'b'的和。但是Python在第二行给出错误信息,如:

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

这个消息是什么意思?我怎样才能实现我的目标?

您可以使用clip设置5到5以下的所有值:

df["c"] = df[["a","b"]].sum(axis=1).clip(5)

try this

df['c'] = df.apply(lambda x: min(5, sum(x.values)), axis=1)

最新更新