Un resumen de la función dropna() y la función fillna() utilizadas en Python para tratar con valores nulos (valores faltantes) en los datos y comprender el uso de estas dos funciones a través de ejemplos.

Introducción: al procesar datos con python, generalmente nos encontramos con datos incompletos, como cuando hay valores nulos, queremos eliminar la fila o columna donde se encuentra el control, o establecemos el valor nulo en un valor determinado. En este momento, puede usar las funciones dropna y fillna para manejar valores nulos.

contenido

(1) Uso de la función dropna().

(2) Uso de la función fillna()


(1) Uso de la función dropna().

dropna(eje,cómo,umbral,subconjunto,en su lugar)

Descripción de parámetros:

eje: Este parámetro por defecto es 0. Cuando es igual a 0, significa eliminar la fila donde se encuentra el valor nulo nan, y cuando es igual a 1, eliminar la columna donde se encuentra el valor nulo.

how: El valor predeterminado de este parámetro es 'any', lo que significa eliminar la fila o columna donde se encuentra el valor nulo. Esto depende principalmente de si configuraste el parámetro del eje anterior en 0 o 1; cuando el parámetro es igual a 'todas', significa que elimine una fila o una columna completa de filas o columnas con valores nulos nan.Si una de sus filas o columnas no es toda nula, no se eliminará, es decir, no funcionará .

umbral: este parámetro es un número entero x, lo que significa mantener cada fila o columna donde el número de nulos nan es menor que x. Por ejemplo, si configuro x = 2, entonces se guardará la cantidad de valores no nulos en cada fila o columna de mi fila o columna que sea mayor o igual a 2, específicamente fila o columna, depende de la configuración de parámetros del eje anterior.

subconjunto: Este parámetro significa especificar la columna o fila donde se elimina el valor nulo de una fila o columna específica.Si eje = 0, significa que si hay un valor nulo en la fila especificada x, la columna donde se encuentra se eliminará; si axis=1, significa que si la columna x especificada tiene un valor nulo, se eliminará la fila donde se encuentra el valor nulo.

inplace: este parámetro tiene el valor predeterminado False, lo que significa que cuando procesa el valor nulo nan, ¿lo procesa en los datos originales o primero hace una copia de los datos originales y luego los procesa en la copia, cuando procesa en la copia? , los datos originales no se ven afectados de ninguna manera; si inplace se establece en True, significa que está procesando los datos originales y los datos originales se ven afectados directamente.

Después de hablar sobre el concepto de parámetros, veamos un ejemplo para ver la influencia y el papel de estos parámetros en la función.

Ejemplo:

Primero cree una matriz de 3X4, luego establezca algunos valores nulos en las posiciones especificadas y luego procese los datos que contienen valores nulos.

import numpy as np
import  pandas as pd
dataSet = pd.DataFrame(np.arange(12).reshape(4,3),index=[0,1,2,3],columns=['a','b','c'])
dataSet.iloc[1,[1]] = np.nan
dataSet.iloc[2,[1,2]] = np.nan
print(dataSet)

Los datos creados se muestran a continuación:

Los identificadores de fila son 0, 1, 2 y 3; los identificadores de columna son a, b y c, que yo mismo nombré, no datos de matriz.

 Nota: Cuando declaramos parámetros aquí, los que no se declaran son los parámetros por defecto, y los que se declaran son para cambiar los parámetros por defecto a los parámetros que queremos, que juegan un papel diferente Explicación de cada parámetro. Luego, mire la diferencia en los resultados cuando los parámetros son diferentes.

Llame a la función dataSet.deropna(), todos los parámetros son valores predeterminados, luego se eliminarán los datos en la primera y segunda fila donde se encuentra el valor nulo. Veamos los siguientes resultados. Acabo de tomar una captura de pantalla del código y el resultado juntos.

 Llame a la función dataSet.dropna(axis=1), otros parámetros predeterminados, elimine la columna donde se encuentra el valor nulo nan. Como se muestra abajo.

 Llame a la función dataSet.dropna(axis=1,how='all'), eliminaremos la columna = donde la columna completa está vacía, pero en nuestros datos, ninguna de las columnas está vacía nan, por lo que el resultado sigue siendo el original Los resultados de los datos, no cambiaron. El resultado se muestra en la figura.

 Llame a la función dataSet.dropna(axis=1,thresh=3), lo que significa que mientras el número de valores no nulos en cada columna de mi columna sea mayor o igual a 3, lo mantendré, de lo contrario, elimine esta columna. Debido a que la cantidad de valores no nulos en la columna b en los datos originales es 2, que no es mayor que 3, la columna b debe eliminarse. El resultado se muestra en la siguiente figura.

 Llame a la función dataSet.dropna(axis=1,subset=['b']), si axis=0, significa que si hay un valor nulo en la fila especificada x, la columna donde se encuentra se eliminará; si el eje = 1, significa que si la columna especificada x es Si hay un valor nulo, elimine la fila con el valor nulo. Entonces, lo que llamo esta declaración significa que quiero especificar que si hay un valor nulo en la columna b, eliminaré la fila donde se encuentra el valor nulo y, si no hay ningún valor nulo, no haré nada. El resultado se muestra en la siguiente figura.

 Al llamar a la función dataSet.dropna(inplace=True), cuando el parámetro es True, indica que estoy operando con los datos originales y no hay una copia de los datos originales. Los parámetros en lugar de las funciones que llamamos anteriormente son todo Falso por defecto, y estamos llamando a lo anterior Después de esas funciones, puede imprimir los datos originales del conjunto de datos, y no necesita cambiarlo. Si soy Verdadero aquí, los datos originales también han cambiado. Como se muestra abajo. Se puede ver que los datos originales también han cambiado.

 Resumen: lo anterior es sobre el uso de la función dropna. Puede practicarlo cambiando diferentes parámetros y ver el efecto. Quedará más impresionado con la práctica práctica.

(2) Uso de la función fillna()

fillna(eje,método,límite,in situ)

¿Se parece mucho a los parámetros de la función dropna? El significado de inplace es el mismo que el de los parámetros en la función dropna y no se explicará aquí.

eje: cuando este parámetro se establece en 1, significa llenar por fila, y cuando se establece en 0, significa llenar por columna. El valor predeterminado es 0, es decir, por columna. Justo lo contrario de la función dropna.

method: Este parámetro significa el método de llenado. Si es 'ffill', los datos anteriores del valor vacío se copian al valor vacío; si es 'bfill', se copian los últimos datos del valor vacío. give this null valor. Si no utiliza este parámetro, no puede declararlo.

limit: este parámetro limita la cantidad de valores vacíos a llenar, por ejemplo, si una columna tiene dos valores vacíos, especifico aquí que solo se llena un valor vacío y el otro valor vacío se ignora.

Ejemplo: También usamos los datos anteriores como ejemplo para crear una matriz de datos. Como se muestra en la figura a continuación, debe importar los archivos de encabezado numpy y pandas, consulte el programa anterior.

 Llame a la función dataSet.fillna(100), si no especifica ningún parámetro, puede usar un valor numérico para reemplazar todos los valores nulos en los datos. Como se muestra abajo

También puede usar un diccionario para cambiar el valor vacío en el lugar especificado al valor que queremos establecer.

 Llame a la función dataSet.fillna(method='ffill'), aquí no declaro eje, el eje por defecto es 0, es decir, se procesa de acuerdo a la columna, donde el valor nulo nan será la columna anterior donde no es nulo valor a asignarle. Aquí, los valores anteriores de cada columna de nulos son 1,0 y 5,0, respectivamente, y los valores de los nulos serán iguales a estos valores de la columna en la que se encuentran. Como se muestra abajo.

 Llame a la función dataSet.fill(method='bfill', limit=1), el método aquí es igual a bfill, aquí no declaro el eje, el eje por defecto es 0, es decir, se procesa de acuerdo a la columna , donde usará el valor nulo nan El último valor de la columna donde se encuentra no es un valor nulo para asignarle, y limitamos que cada columna solo se puede llenar con un valor nulo como máximo, y no te preocupes por el resto. Como se muestra abajo.

 No demostraremos la función inplace aquí. Es consistente con el uso de la función dropna anterior. El valor predeterminado es modificar la copia de los datos, y los datos originales no se cambiarán.

Resumen: lo anterior trata sobre el uso de estas dos funciones. Al procesar datos, si desea tratar con valores nulos, estas dos funciones siguen siendo muy útiles y puede obtener los datos que desea sin valores nulos.

No es fácil de escribir, por favor dale me gusta para animarlo, por favor indica la fuente al reimprimir, cada palabra está escrita a mano.

Si tiene alguna pregunta, bienvenido a comunicarse.

 

Supongo que te gusta

Origin blog.csdn.net/BaoITcore/article/details/123847927
Recomendado
Clasificación