参见英文答案 > How to deal with SettingWithCopyWarning in Pandas? 13个
我有一个小数据帧,比如说这个:
Mass32 Mass44
12 0.576703 0.496159
13 0.576658 0.495832
14 0.576703 0.495398
15 0.576587 0.494786
16 0.576616 0.494473
...
我想要列Mass32的滚动平均值,所以我这样做:
x['Mass32s'] = pandas.rolling_mean(x.Mass32, 5).shift(-2)
它的工作原理我有一个名为Mass32s的新列,其中包含我希望它包含的内容,但我也收到警告消息:
A value is trying to be set on a copy of a slice from a DataFrame. Try
using .loc[row_indexer,col_indexer] = value insteadSee the the caveats in the documentation:
07001
我想知道是否有更好的方法来做到这一点,特别是避免收到此警告信息.
解决方法:
出现此警告是因为您的数据帧x是切片的副本.这不容易知道为什么,但它与你如何达到它的当前状态有关.
您可以通过执行从x创建正确的数据帧
x = x.copy()
您应该使用DataFrame.loc方法,如警告所示,如下所示:
x.loc[:,'Mass32s'] = pandas.rolling_mean(x.Mass32, 5).shift(-2)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。