Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

307
Visualizações
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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda