Pandas SettingWithCopyWarning:试图在数据帧切片的副本上设置值
在以下情况下,我不断收到主题中的警告:Pandas SettingWithCopyWarning:试图在数据帧切片的副本上设置值,pandas,Pandas,在以下情况下,我不断收到主题中的警告: rename(columns={'one':'one_a'},inplace=True) df.drop(['one','two','three'],轴=1,原地=True) 如何修复?最简单的修复(可能是良好的编程实践)是不执行就地操作,例如: df2 = df.rename(columns={'one':'one_a'}) 我有一个类似的问题,为了解决这个问题,我做了以下工作: new_df = df.copy() new_df.rename(col
df2 = df.rename(columns={'one':'one_a'})
我有一个类似的问题,为了解决这个问题,我做了以下工作:
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),这就是您收到警告的原因。有关副本的更多信息:
如果我这样做了怎么办?df=df.rename(columns={'one':'one_a'}),如果我保持原样,在这种情况下可以忽略警告吗?可以忽略警告,但我建议您为
df.columns
指定一个新列名列表。基本上,df.columns=['list','of','new','names']
。对于df.drop
,最好写df=df.loc[:,['columns','to','keep']].copy()
@VinceBowdren嗯,我想这是一个品味问题,但就地操作与此不相适应,这可能是我避免这些警告的新策略——大量的.copy()
标记到我的操作结束