【发布时间】:2017-06-25 15:24:49
【问题描述】:
在 pandas 数据框中,我正在尝试映射 df['old_column'],为每一行应用用户定义的函数 f 并创建一个新列。
df['new_column'] = df['old_column'].map(lambda x: f(x))
这将给出“SettingWithCopyWarning:试图在 DataFrame 中的切片副本上设置值。”错误。
我尝试了以下方法:
df.loc[:, 'new_column'] = df['old_column'].map(lambda x: f(x))
这没有帮助。我能做什么?
【问题讨论】:
-
在 Pandas 0.19.2 中,在这种情况下似乎不再出现此警告
-
我在 1.2.0 中仍然收到此警告
-
警告实际上明确表示尝试使用
.loc,但是当遵循该建议时,仍然会发出警告。相当混乱。 (版本 1.2.0)