python pandas

python - Pandas: SettingWithCopyWarning:



(2)

Intenté el siguiente código para convertir una columna a "fecha":

df.[''DATE''] = pd.to_datetime(df[''DATE''])

o

df.DATE = pd.to_datetime(df.DATE)

pero me sale el siguiente error:

/Users/xyz/anaconda3/envs/sensor/lib/python3.6/site-packages/pandas/core/indexing.py:517: SettingWithCopyWarning: se está intentando establecer un valor en una copia de un segmento de un DataFrame. Intente usar .loc [row_indexer, col_indexer] = value en su lugar

Consulte las advertencias en la documentación: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy self.obj [item] = s

Cambié el código a lo siguiente:

df.loc[:,''DATE''] = pd.to_datetime(df.loc[:,''DATE''])

pero sigo teniendo el mismo error.

lo mismo con esto

for i in df.index: df.loc[i,''DATE''] = pd.to_datetime(df.loc[i,''DATE''])


El problema está en el código que no nos ha mostrado. En alguna parte, has hecho algo como esto:

df = other.loc[something]

Esa es la causa raíz de este mensaje de error. .loc asignar usando .loc o similar directamente en el DataFrame original:

other.loc[something, ''DATE''] = whatever


Necesita agregar copy :

df = data.loc[data.ID == 79]

a:

df = data.loc[data.ID == 79].copy()

Si modifica los valores en df más adelante, encontrará que las modificaciones no se propagan a los datos originales ( data ) y que Pandas sí advierte.