我尝试使用以下代码将列转换为" date":
df.['DATE'] = pd.to_datetime(df['DATE'])
或
df.DATE = pd.to_datetime(df.DATE)
但是我收到以下错误:
/Users/xyz/anaconda3/envs/sensor/lib/python3.6/site-packages/pandas/core/indexing.py:517: SettingWithCopyWarning:尝试在a的副本上设置值 从DataFrame切片。尝试使用.loc [row_indexer,col_indexer] = 代替值
请参阅文档中的警告: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy self.obj [item] = s
我将代码更改为以下内容:
df.loc[:,'DATE'] = pd.to_datetime(df.loc[:,'DATE'])
但我仍然得到同样的错误。
与此相同
for i in df.index:
df.loc[i,'DATE'] = pd.to_datetime(df.loc[i,'DATE'])
答案 0 :(得分:3)
您需要添加copy
:
df = data.loc[data.ID == 79]
为:
df = data.loc[data.ID == 79].copy()
如果稍后修改df
中的值,您会发现修改不会传播回原始数据(data
),并且Pandas会发出警告。
答案 1 :(得分:2)
问题在于您没有向我们展示过的代码。在某个地方,你做过这样的事情:
df = other.loc[something]
这是此错误消息的根本原因。您需要使用.loc
或类似内容直接分配到原始DataFrame:
other.loc[something, 'DATE'] = whatever