在SettingWithCopyWarning被创造的标志可能造成混淆的“链接”的任务,比如下面这并不总是按预期方式工作,特别是当第一选择返回一个副本。
df[df['A'] > 2]['B'] = new_val # new_val not set in df
该警告提出了如下重写建议:
df.loc[df['A'] > 2, 'B'] = new_val
但是,这不适合您的用法,相当于:
df = df[df['A'] > 2]df['B'] = new_val
显然,您不关心将其写回到原始框架的操作(因为您正在覆盖对它的引用),但是不幸的是,这种模式无法与第一个链式分配示例区分开。因此,(误报)警告。如果您想进一步阅读,可能会在建立索引的文档中解决误报的可能性。您可以通过以下分配安全地禁用此新警告。
import pandas as pdpd.options.mode.chained_assignment = None # default='warn'



