Python | Pandas DataFrame.dropna()

Python es un excelente lenguaje para realizar análisis de datos, principalmente debido al fantástico ecosistema de paquetes de Python centrados en datos. Pandas es uno de esos paquetes y facilita mucho la importación y el análisis de datos.

A veces, el archivo csv tiene valores nulos, que luego se muestran como NaN en el marco de datos. El método pandas dropna() permite al usuario analizar y soltar filas/columnas con valores nulos de diferentes maneras.

Sintaxis:

DataFrameName.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)

Parámetros:

eje: el eje toma un valor int o de string para filas/columnas. La entrada puede ser 0 o 1 para Integer y ‘index’ o ‘columns’ para String.
how: how toma valor de string de solo dos tipos (‘cualquiera’ o ‘todos’). ‘cualquiera’ descarta la fila/columna si CUALQUIER valor es nulo y ‘todos’ descarta solo si TODOS los valores son nulos.
Thresh: Thresh toma un valor entero que indica la cantidad mínima de valores na que deben caer.
subconjunto: es una array que limita el proceso de eliminación a filas/columnas pasadas a través de la lista.
inplace: es un valor booleano que realiza los cambios en el marco de datos si es verdadero.

Para obtener un enlace al archivo CSV utilizado en el código, haga clic aquí.

Ejemplo n.º 1: Descartar filas con al menos 1 valor nulo.

Se lee el marco de datos y se eliminan todas las filas con cualquier valor nulo. El tamaño de los marcos de datos antiguos y nuevos se compara para ver cuántas filas tenían al menos 1 valor nulo.

# importing pandas module
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("nba.csv")
  
# making new data frame with dropped NA values
new_data = data.dropna(axis = 0, how ='any')
  
# comparing sizes of data frames
print("Old data frame length:", len(data), "\nNew data frame length:", 
       len(new_data), "\nNumber of rows with at least 1 NA value: ",
       (len(data)-len(new_data)))

Producción:

Old data frame length:  458 
New data frame length:  364 
Number of rows with at least 1 NA value:  94

Dado que la diferencia es 94, había 94 filas que tenían al menos 1 valor nulo en cualquier columna.
 

Ejemplo n.º 2: cambio de eje y uso de parámetros how y inplace

Se hacen dos tramas de datos. Se agrega una columna con todos los valores = ninguno al nuevo marco de datos. Los nombres de las columnas se verifican para ver si la columna nula se insertó correctamente. Luego, el número de columnas se compara antes y después de eliminar los valores de NaN.

# importing pandas module
import pandas as pd
  
# making data frame from csv file
data = pd.read_csv("nba.csv")
  
# making a copy of old data frame
new = pd.read_csv("nba.csv")
  
# creating a value with all null values in new data frame
new["Null Column"]= None
  
# checking if column is inserted properly 
print(data.columns.values, "\n", new.columns.values)
  
# comparing values before dropping null column
print("\nColumn number before dropping Null column\n",
       len(data.dtypes), len(new.dtypes))
  
# dropping column with all null values
new.dropna(axis = 1, how ='all', inplace = True)
  
# comparing values after dropping null column
print("\nColumn number after dropping Null column\n",
      len(data.dtypes), len(new.dtypes))

Producción:

['Name' 'Team' 'Number' 'Position' 'Age' 'Height' 'Weight' 'College'
 'Salary'] 
 ['Name' 'Team' 'Number' 'Position' 'Age' 'Height' 'Weight' 'College'
 'Salary' 'Null Column']

Column number before dropping Null column
 9 10

Column number after dropping Null column
 9 9

Publicación traducida automáticamente

Artículo escrito por Kartikaybhutani y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *