es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Reemplace NAN con condiciones

Tengo este dataframe, quiero reemplazar los NaN de la columna región según el área de membresía …

df = pd.DataFrame({
        'area':['North America','Belgique','France','Angleterre','Asie','N Zelande','Italie'],
        'region':['NA','Nan','Europe','Autres','Nan','Nan','Nan']})

area | region |

North America | NA |
Belgique | Nan |
France | Europe |
Angleterre | Autres |
Asie | Nan |
N Zelande | Nan |
Italie | Nan |

Quiero obtener este resultado

area | region |

North America | NA |
Belgique | Europe |
France | Europe |
Angleterre | Europe |
Asie | Autres |
N Zelande | Autres |
Italie | Europe |

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Puede utilizar la función fillna() para reemplazar los valores NaN en la columna de región basándose en el área de afiliación. Primero, cree un diccionario que mapee las áreas a las regiones correspondientes:

    area_to_region = {'North America': 'NA', 'Belgique': 'Europe', 'France': 'Europe', 'Angleterre': 'Europe', 'Asie': 'Autres', 'N Zelande': 'Autres', 'Italie': 'Europe'}
    

    A continuación, aplique el mapeo a la columna de región utilizando map() y fillna():

    df['region'] = df['region'].fillna(df['area'].map(area_to_region))
    

    Esto reemplazará los valores NaN en la columna de región por la región correspondiente según el área de afiliación. El dataframe resultante debería lucir así:

    area           | region |
    ------------------------
    North America  | NA     |
    Belgique       | Europe |
    France         | Europe |
    Angleterre     | Europe |
    Asie           | Autres |
    N Zelande      | Autres |
    Italie         | Europe |
    

Comments are closed.