另一个设置与复制警告:我正在使用.loc替换特定值,但仍然收到警告



我以为我遵循了最佳实践:

import pandas as pd
df=pd.DataFrame({'cond':['a', 'b', 'a'], 'value':[1.5, 2.5, 3.5]})
mask = df.cond == 'a'
df.loc[mask, 'value'] = df.loc[mask, 'value'] * (-1)

本质上,如果满足条件,请将值替换为负值。执行此操作以免触发警告的更好方法是什么?

事实证明,问题不在于如图所示的代码。该代码示例工作正常。

在现实世界中,df是按如下方式创建的:df = df2[['cond', 'value']]. 在此行中添加.copy(),修复了警告。

@jezrael在评论中指出了此解决方案。

最新更新