En el marco de datos de pandas, intento mapear df['old_column'], aplicar la función f definida por el usuario para cada fila y crear una nueva columna.
df['new_column'] = df['old_column'].map(lambda x: f(x))Esto dará "SettingWithCopyWarning: un valor está tratando de establecerse en una copia de un segmento de un DataFrame". error.
Intenté lo siguiente:
df.loc[:, 'new_column'] = df['old_column'].map(lambda x: f(x))que no ayuda ¿Que puedo hacer?
Se genera una advertencia de SettingWithCopy para ciertas operaciones en pandas que pueden no tener el resultado esperado porque pueden estar actuando en copias en lugar de los conjuntos de datos originales. Desafortunadamente, no hay una manera fácil para que los pandas mismos sepan si una llamada en particular hará esto o no, por lo que esta advertencia tiende a surgir en muchos, muchos casos donde (desde mi perspectiva como usuario) nada está realmente mal. .
Ambas llamadas a su método están bien. Si desea deshacerse de la advertencia por completo, puede especificar:
pd.options.mode.chained_assignment = NoneConsulte estas preguntas y respuestas de StackOverflow para obtener más información al respecto.