trying settingwithcopywarning from python pandas chained-assignment

python - settingwithcopywarning - Manera correcta de establecer el valor en una porción en pandas



python a value is trying to be set on a copy of a slice from a dataframe (1)

Esta es una advertencia muy común de los pandas. Esto significa que está escribiendo en una porción de copia, no los datos originales, por lo que es posible que no se aplique a las columnas originales debido a la confusa asignación encadenada. Por favor lea este post Tiene una discusión detallada sobre este SettingWithCopyWarning . En tu caso creo que puedes intentarlo.

data.loc[data[''name''] == ''fred'', ''A''] = 0

Esta pregunta ya tiene una respuesta aquí:

Tengo un marco de datos de pandas: datos. tiene columnas ["nombre", ''A'', ''B'']

Lo que quiero hacer (y funciona) es:

d2 = data[data[''name''] == ''fred''] #This gives me multiple rows d2[''A''] = 0

Esto establecerá la columna A en las filas de fred a 0. También he hecho:

indexes = d2.index data[''A''][indexes] = 0

Sin embargo, ambos me dan la misma advertencia:

/Users/brianp/work/cyan/venv/lib/python2.7/site-packages/pandas/core/indexing.py:128: SettingWithCopyWarning: A value is trying to be set on a copy of a slice from a DataFrame See the caveats in the documentation: http://pandas.pydata.org/pandas-docs/stable/indexing.html#indexing-view-versus-copy

¿Cómo los pandas QUIEREN que haga esto?