【发布时间】:2016-06-16 03:15:46
【问题描述】:
我有这个数据框:
Pred
Date
2002-03-01 -0.03729
2002-04-01 0.11047
2002-05-01 0.02842
2002-06-01 0.01005
2002-07-01 -0.03607
2002-08-01 0.07484
...
我正在使用以下功能:
def lag(df):
df.columns=['Value']
df.sort_index(ascending=True)
df['1lag']=df.Value.shift(1)
df['2lag']=df.Value.shift(2)
df['3lag']=df.Value.shift(3)
df['4lag']=df.Value.shift(4)
它一直给我同样的警告:
See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy
df['1lag']=df.Value.shift(1)
/Users/file.py:1020: SettingWithCopyWarning:
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
每个 df.Value.shift 命令都会发出一个警告。 任何想法为什么会发生?
【问题讨论】:
-
这是一个常见问题,请尝试从错误中搜索该文本并查看一些解决方案。这是一种可能的解决方案stackoverflow.com/questions/29263506/…
标签: pandas