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