猿问

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

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


想要做如下的事情。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])

但我认为我的语法是错误的。谢谢你的帮助!


萧十郎
浏览 80回答 1
1回答

12345678_0001

你可以做这样的事情来得到结果。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
随时随地看视频慕课网APP

相关分类

Python
我要回答