我正在使用Pandas SettingWithCopyWarning的答案
在我的脚本中,但它返回了我“ SettingWithCopyWarning”,我可以知道该如何解决吗?
attemped1:dff ['changed'] = dff.col1.ne(dff.col1.shift(1))
尝试2:dff.loc [:,'已更改] = dff.col1.ne(dff.col1.shift(1))
最佳答案
您的代码是正确的,问题在上面的某些行中。
我猜您过滤了DataFrame
并且解决方案是添加copy
:
dff = df[df['col2'] == 1].copy()
dff['changed'] = dff.col1.ne(dff.col1.shift(1))
如果以后在
dff
中修改值,则会发现修改不会传播回原始数据(df
),并且Pandas会发出警告。关于python - 实现列比较时的SettingWithCopyWarning,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51796480/