python pandas - 生成 view/copy 具有多个条件的警告过滤数据帧

python pandas - generating view/copy warning filtering dataframe with multiple conditions

我知道这篇文章写得令人作呕,而且这个 link 已被反复引用 ( pandas: Returning a view versus a copy ),但我似乎无法在没有得到警告的情况下写出这一简单的行。这让我抓狂,我的语法看起来和建议的一样。

df['A'][(df['B']>=10) & (df['B']<50)] = 'group1'

有人能解释一下我犯了什么错误吗?

如示例所示,使用 .loc 并将列和行条件放在同一订阅中:

df.loc[(df['B']>=10) & (df['B']<50), 'A'] = 'group1'

任何时候你有两组括号,比如blah[...][...],你就是在做链式索引。为避免链式索引,您需要将所有条件放入一组括号中。