【发布时间】:2015-10-06 17:21:45
【问题描述】:
我有一个小数据框,说这个:
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 的新列,其中包含我希望它包含的内容,但我也收到警告消息:
试图在 DataFrame 中的切片副本上设置值。尝试 使用 .loc[row_indexer,col_indexer] = value 代替
请参阅文档中的注意事项: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
我想知道是否有更好的方法来做到这一点,尤其是避免收到此警告消息。
【问题讨论】:
-
我没有收到警告消息,当我使用您的示例代码运行时,您能否检查您是否在代码的前面设置了
x作为数据框的副本,例如 @ 987654327@ -
数据框中有几个 Nas 显然是在搞乱我。用 fillna(0) 和 .loc 修复它们解决了它。谢谢