"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > ¿Por qué se produce 'settingwithCopyWarning' al modificar los marcos de datos derivados de los subconjuntos?

¿Por qué se produce 'settingwithCopyWarning' al modificar los marcos de datos derivados de los subconjuntos?

Publicado el 2025-02-21
Navegar:524

Why Does `SettingWithCopyWarning` Occur When Modifying DataFrames Derived from Subsets?

Localización del culpable de configurarwithCopyWarning

al intentar modificar un marcado de datos usando .loc [fila_indexer, col_indexer] = valor, el "settingcopywarning" " persiste. Este problema se debe acceder a una porción de DataFrame desde otro DataFrame sin invocar el método .Copy ().

paso a paso de la reproducción de errores

Considere el siguiente código:

import pandas as pd

d = {'col1': [1, 2, 3, 4], 'col2': [3, 4, 5, 6]}
df = pd.DataFrame(data=d)

df['new_column'] = None
df.loc[0, 'new_column'] = 100

inicialmente, no hay advertencias. Sin embargo, creando un nuevo DataFrame basado en un subconjunto de df:

new_df = df.loc[df.col1 > 2]

e intentando modificar el nuevo DataFrame usando .loc: [

new_df.loc[2, 'new_column'] = 100

activa el advertencia.

: usando .copy () para marcos de datos derivados de un subconjunto

para resolver este problema, use siempre el método .copy () al crear un Nuevo DataFrame basado en un subconjunto de un DataFrame existente.

new_df_copy = df.loc[df.col1 > 2].copy()
new_df_copy.loc[2, 'new_column'] = 100

invocando .Copy (), crea una copia independiente del subconjunto, evitando la advertencia al modificar los valores.

Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3