为了账号安全,请及时绑定邮箱和手机立即绑定

如果单元格值小于指定值,则将数据框中的单元格乘以常数

如果单元格值小于指定值,则将数据框中的单元格乘以常数

萧十郎 2023-07-18 16:39:09
如果单元格值小于指定值,则将数据框中的单元格乘以常数。想要做如下的事情。true 会导致发生乘法并将新值重新分配给数据帧中的单元格。false 应该保留该值。但这给出了错误以及我在网上看到的其他东西不起作用:if  df['value'] < 50:    df['value']=df['value']*(1*10^5)else:    df['value']=df['value']ValueError: The truth value of a Series is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all().我也尝试过:df['value'] = df['value'].apply(lambda x: [y if y<=50 for y in x])但我认为我的语法是错误的。谢谢你的帮助!
查看完整描述

1 回答

?
12345678_0001

TA贡献1802条经验 获得超5个赞

你可以做这样的事情来得到结果。

df.loc[df['value'] < 50, 'value'] = df['value']*(1*10**5)

如果你想使用 lambda 函数,你可以这样做。

df['value'] = df['value'].apply(lambda x: x*(1*10**5) if x < 50 else x)

同意@Grzegorz Skibinski 的观点。这是一个更好的选择:

df.loc[df['value'] < 50, 'value'] *= 10**5


查看完整回答
反对 回复 2023-07-18
  • 1 回答
  • 0 关注
  • 79 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信