我有一个小数据框,比如说:
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 instead
See the the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
我想知道是否有更好的方法,尤其是避免收到这个警告信息。
出现此警告是因为数据帧
x
是切片的副本。这不容易知道为什么,但这与你是如何达到目前的状态有关。您可以通过执行以下操作从x中创建适当的
dataframe
这将删除警告,但它不是正确的方式
如警告所示,您应该使用
DataFrame.loc
方法,如下所示:相关问题 更多 >
编程相关推荐