使用做数据处理的时候经常会使用列操作,经常会报SettingWithCopyWarning。
比如:df['a'] = df['a'].apply(lambda x:x**2)
有测试过以下几种方案:
方案1:
df_copy = df['a'].copy()
df_copy.apply(lambda x:x**2)
df.loc[:,'a'] = df_copy.values
方案2:
df_copy = df.loc[:,'a']
df_copy.apply(lambda x:x**2)
df.loc[:,'a'] = df_copy.values
求pandas爱好者共同探讨好的解决方案!
谢谢,但是上述的方法除了iloc的没有试过,其他都有试过,还是不行的,还是会报warning的
df_copy = df['a'].copy()
df_copy.apply(lambda x:x**2)
df.loc[:,'a'] = df_copy.values
已解决,df['a'] 不能是二次 .loc 的值,否则会报错,大家请注意
.copy()很关键了