繁体   English   中英

在数据框熊猫中创建列,列和值之间的最大值

[英]create column in dataframe pandas, max between column and value

我尝试在数据框熊猫中创建列,在列和值之间创建最大值

const = 10
df['new_val'] = max(df['val']-const, 0)

我收到此错误:

ValueError:Series 的真值不明确。 使用 a.empty、a.bool()、a.item()、a.any() 或 a.all()。

输入:

  val |
   12 |
   5  |

预期的:

  val | new_val
   12 |   2
   5  |   0

如果要在确保没有负数的同时删除const ,请subtractclip

df['new_val'] = df['val'].sub(const).clip(lower=0)

输出:

   val  new_val
0   12        2
1    5        0

使用numpy.maximum作为每列valmax

const = 10
df['new_val'] = np.maximum(df['val'].sub(const), 0)
print (df)
   val  new_val
0   12        2
1    5        0

或者用Series.clip减去负值的0值:

const = 10
df['new_val'] = df['val'].sub(const).clip(lower=0)
print (df)
   val  new_val
0   12        2
1    5        0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM