Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

312
Views
Función de filtrado para pandas: visualización de valores NaN dentro de una columna

Función que he creado:

 #Create a function that identifies blank values def GPID_blank(df, variable): df = df.loc[df['GPID'] == variable] return df

Prueba:

 variable = '' test = GPID_blank(df, variable) test

Objetivo: crear una función que pueda filtrar cualquier columna de marco de datos 'GPID' para ver todas las filas donde GPID tiene datos faltantes.

He intentado ejecutar variable = 'NaN' y todavía no tuve suerte. Sin embargo, sé que la función funciona, como si usara una variable de la vida real "OH82CD85", la función filtra mi conjunto de datos en consecuencia.

Por lo tanto, ¿por qué no filtra la variable = 'NaN' ? Sé que para mi conjunto de datos, hay 5 filas con datos faltantes de GPID.

Ejemplo DF:

 df = pd.DataFrame({'Client': ['A','B','C'], 'GPID':['BRUNS2','OH82CD85','']}) Client GPID 0 A BRUNS2 1 B OH82CD85 2 C

Muestra de la columna GPID:

 0 OH82CD85 1 BW07TI20 2 OW36HW81 3 PE56TA73 4 CT46SX81 5 OD79AU80 6 GF46DB60 7 OL07ST01 8 VP38SM57 9 AH90AE61 10 PG86KO78 11 NaN 12 NaN 13 SO21GR72 14 DY85IN90 15 KW80CV02 16 CM15QP83 17 VC38FP82 18 DA36RX05 19 DD74HD38
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

No puedes usar == con NaN. NaN != NaN .

En cambio, puede modificar un poco su función para verificar si el parámetro es NaN usando pd.isna() (o np.isnan() ):

 def GPID_blank(df, variable): if pd.isna(variable): return df.loc[df['GPID'].isna()] else: return df.loc[df['GPID'] == variable]
over 4 years ago · Santiago Trujillo Report

0

Realmente no puede buscar valores de NaN como una expresión. Además, en su marco de datos de ejemplo, '' no es NaN , sino str , y se puede buscar como una expresión.

En su lugar, debe verificar cuándo desea filtrar por NaN y filtrar de manera diferente:

 def GPID_blank(df, variable): if pd.isna(variable): df = df.loc[df['GPID'].isna()] else: df = df.loc[df['GPID'] == variable] return df
over 4 years ago · Santiago Trujillo Report

0

No funciona porque con variable = 'NaN' está buscando una cadena cuyo contenido sea 'NaN', no valores faltantes.

Puedes probar:

 import pandas as pd def GPID_blank(df): # filtered dataframe with NaN values in GPID column blanks = df[df['GPID'].isnull()].copy() return blanks filtered_df = GPID_blank(df)
over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!