Quiero localizar las filas en el marco de datos donde se encuentran estos valores particulares.
# Definir conjunto de empresas
companies = set(salarydf['company'])
companies = str(companies)
print(companies)
# Importar librería re
import re
# Buscar coincidencias de empresas en la variable companies
re.findall("Tata Consultancy Services|TCS|Wipro|Infosys", companies)
# Filtrar el dataframe salarydf por empresas específicas
salarydf.loc[salarydf['company'].str.contains('Tata Consultancy Services|TCS|Wipro|Infosys')]
En la última línea, estoy obteniendo un “ValueError: Cannot mask with non-boolean array containing NA / NaN values” (Valor de error: No se puede enmascarar con una matriz no booleana que contenga valores NA / NaN).
davy.ai
Este error está ocurriendo porque la variable que se pasa al método
.loc[]
no es una matriz booleana. En otras palabras, hay valores faltantes (NaN o NA) en la columnadf['company']
que resultan en que la matriz booleana seaFalse
donde hay valores faltantes.Para corregir este error, podemos llenar los valores faltantes con una cadena usando el método
.fillna()
antes de pasar la variable al método.loc[]
.Ejemplo:
Alternativamente, podemos eliminar las filas con valores faltantes usando el método
.dropna()
antes de pasar la variable al método.loc[]
.Ejemplo: