Pandas SettingWithCopyWarning:尝试在DataFrame的切片副本上设置值

时间:2015-11-16 02:33:10

标签: pandas

在以下情况下,我不断收到主题警告:

  1. df.rename(columns = {' one':' one_a'},inplace = True)

  2. df.drop([' one',' two',' three'],axis = 1,inplace = True)

  3. 我该如何解决?

2 个答案:

答案 0 :(得分:4)

我遇到了类似的问题并且修复了我做了以下事情:

new_df = df.copy()
new_df.rename(columns={'one':'one_a'}, inplace=True)
new_df.drop(['one', 'two', 'three'], axis=1, inplace=True)

或者你可以做到

df.is_copy = False

您可能正在使用原始DF的副本(例如:您之前操纵过您的DF),这就是您收到警告的原因。更多关于副本:

why should I make a copy of a data frame in pandas

答案 1 :(得分:3)

最简单的修复(可能是良好的编程实践)是不进行现场操作,例如

df2 = df.rename(columns={'one':'one_a'})