熊猫:SettingWithCopyWarning:

sal*_*hin 6 python pandas

我尝试使用以下代码将列转换为“日期”:

df.['DATE'] =  pd.to_datetime(df['DATE'])
Run Code Online (Sandbox Code Playgroud)

或者

df.DATE =  pd.to_datetime(df.DATE)
Run Code Online (Sandbox Code Playgroud)

但我收到以下错误:

/Users/xyz/anaconda3/envs/sensor/lib/python3.6/site-packages/pandas/core/indexing.py:517: SettingWithCopyWarning: 试图在 DataFrame 切片的副本上设置一个值。尝试使用 .loc[row_indexer,col_indexer] = value 代替

请参阅文档中的警告: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'])
Run Code Online (Sandbox Code Playgroud)

但我仍然遇到同样的错误。

与此相同

for i in df.index:
    df.loc[i,'DATE'] =  pd.to_datetime(df.loc[i,'DATE'])
Run Code Online (Sandbox Code Playgroud)

jez*_*ael 5

您需要添加copy

df = data.loc[data.ID == 79]
Run Code Online (Sandbox Code Playgroud)

到:

df = data.loc[data.ID == 79].copy()
Run Code Online (Sandbox Code Playgroud)

如果df稍后修改值,您会发现修改不会传播回原始数据 ( data),并且 Pandas 会发出警告。