¿Cómo puedo obtener el número de valores faltantes en cada fila en el marco de datos de Pandas? Me gustaría dividir el marco de datos en diferentes marcos de datos que tengan el mismo número de valores faltantes en cada fila.
¿Cualquier sugerencia?
Puede aplicar un recuento sobre las filas de esta manera:
test_df.apply(lambda x: x.count(), axis=1)
test_df:
A B C
0: 1 1 3
1: 2 nan nan
2: nan nan nan
salida:
0: 3
1: 1
2: 0
Puede agregar el resultado como una columna como esta:
test_df['full_count'] = test_df.apply(lambda x: x.count(), axis=1)
Resultado:
A B C full_count
0: 1 1 3 3
1: 2 nan nan 1
2: nan nan nan 0
Al utilizar los pandas, tratar de evitar las operaciones que se realizan en un bucle, incluyendo
apply
,map
,applymap
etc Eso es lento!Si desea contar los valores faltantes en cada columna, intente:
df.isnull().sum()
odf.isnull().sum(axis=0)
Por otro lado, puede contar en cada fila (que es su pregunta) de la siguiente manera:
df.isnull().sum(axis=1)
Es aproximadamente 10 veces más rápido que la solución de Jan van der Vegt (por cierto cuenta valores válidos, en lugar de valores perdidos):
fuente
La forma simplista:
fuente
O bien, simplemente puede utilizar el método de información para objetos de marco de datos:
que proporciona recuentos de valores no nulos para cada columna.
fuente
valores nulos a lo largo de la columna,
valores en blanco a lo largo de la columna,
valores nulos a lo largo de la fila,
valores en blanco a lo largo de la fila,
fuente
Este fragmento devolverá el valor entero del número total de columnas con valor perdido:
fuente
fuente
Si desea contar los valores faltantes:
fuente