Python: rellene celdas vacías con valores de otras columnas que no modifiquen el conjunto de datos original

CorePress2024-01-16  11

Tengo un DataFrame de pandas

Company Name        | Person Name  | Phone number
General Electric    | John Doe     | 
Ford                |              | 123 456 789

Quiero llenar nombres vacíos con el nombre de la empresa

Company Name        | Person Name  | Phone number
General Electric    | John Doe     | 
Ford                | Ford         | 123 456 789

Podría escribir df.loc[df["Nombre de persona"].isna(),'Nombre de persona'] = df["Nombre de empresa"] pero modificaría el DataFrame original.

df.copy().loc[df["Person Name"].isna(),'Person Name'] = df["Company Name"] debería funcionar, pero ¿existe una forma más elegante? hacerlo, sin usar copy() ?



------------------------------------

Podemos usar fillna para completar los valores faltantes en Nombre de persona con los valores de Nombre de empresa:

df.fillna(df['Company Name'].to_frame('Person Name'))
       Company Name Person Name
0  General Electric    John Doe
1              Ford        Ford

2

¿Qué pasa si tengo otras columnas con na que no quiero completar? Actualizaré la pregunta

- Noan Cloarec

19/03/2021 a las 16:31

Esto solo completará los valores NaN en la columna Nombre de persona.

- Shubham Sharma

19/03/2021 a las 16:34



------------------------------------

Cuando subestableces el df del marco de datos original, agrega una copia

df = or_df[somecondition].copy()

Entonces rellénalo con

df['Person Name'].fillna(df["Company Name"],inplace=True)

0

Su guía para un futuro mejor - libreflare
Su guía para un futuro mejor - libreflare