Función Pandas DataFrame DataFrame.dropna()

Minahil Noor 30 enero 2023
  1. La sintaxis de pandas.DataFrame.dropna()
  2. Códigos de ejemplo: DataFrame.dropna() para soltar fila
  3. Códigos de ejemplo: DataFrame.dropna() a Drop Column
  4. Códigos de ejemplo: DataFrame.dropna() Con how=all
  5. Códigos de ejemplo: DataFrame.dropna() Con un subconjunto o trilla especificada
  6. Códigos de ejemplo: DataFrame.dropna() Con inplace=True
Función Pandas DataFrame DataFrame.dropna()

La función pandas.DataFrame.dropna() elimina los valores nulos (valores perdidos) del DataFrame dejando caer las filas o columnas que contienen los valores nulos.

NaN (no un número) y NaT (no un tiempo) representan los valores nulos. DataFrame.dropna() detecta estos valores y filtra el DataFrame en consecuencia.

La sintaxis de pandas.DataFrame.dropna()

DataFrame.dropna(axis, how, thresh, subset, inplace)

Parámetros

axis Determina que el eje sea de fila o de columna.
Si es 0 o “índice”, entonces deja caer las filas que contienen valores perdidos.
Si es 1 o columns, entonces deja caer las columnas que contienen los valores perdidos. Por defecto, su valor es 0.
how Este parámetro determina la forma en que la función deja caer las filas o columnas. Sólo acepta dos cadenas de caracteres, ya sea any o all. Por defecto, se establece como any.
any deja caer la fila o columna si hay algún valor nulo en ella.
all deja caer la fila o columna si faltan todos los valores en ella.
thresh Es un número entero que especifica el menor número de valores que no falten que impiden que las filas o columnas caigan.
subset Es un array que tiene los nombres de las filas o columnas para especificar el procedimiento de caída.
inplace Es un valor booleano que cambia la llamada DataFrame si se establece como True. Por defecto, su valor es False.

Retorna

Devuelve un DataFrame filtrado con filas o columnas eliminadas según los parámetros pasados.

Códigos de ejemplo: DataFrame.dropna() para soltar fila

Por defecto, el eje es 0, es decir, las filas, por lo que todas las salidas tienen filas caídas.

import pandas as pd

dataframe=pd.DataFrame({'Attendance': {0: 60, 1: None, 2: 80,3: None, 4: 95},
                    'Name': {0: 'Olivia', 1: 'John', 2: 'Laura',3: 'Ben',4: 'Kevin'},
                    'Obtained Marks': {0: None, 1: 75, 2: 82, 3: 64, 4: None}})
print(dataframe)

El ejemplo DataFrame es el siguiente.

   Attendance    Name  Obtained Marks
0        60.0  Olivia             NaN
1         NaN    John            75.0
2        80.0   Laura            82.0
3         NaN     Ben            64.0
4        95.0   Kevin             NaN

Todos los parámetros de esta función son opcionales. Si no pasamos ningún parámetro, entonces la función deja caer todas las filas que contengan un único valor nulo.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
    }
)
dataframe1 = dataframe.dropna()
print(dataframe1)

Resultado:

   Attendance   Name  Obtained Marks
2        80.0  Laura            82.0

Ha eliminado todas las filas que contenían un único valor nulo.

Códigos de ejemplo: DataFrame.dropna() a Drop Column

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
    }
)
dataframe1 = dataframe.dropna(axis=1)

print(dataframe1)

Resultado:

     Name
0  Olivia
1    John
2   Laura
3     Ben
4   Kevin

Se han eliminado todas las columnas que contenían un único valor perdido porque pusimos axis=1 en el método DataFrame.dropna().

Códigos de ejemplo: DataFrame.dropna() Con how=all

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
    }
)

dataframe1 = dataframe.dropna(axis=1, how="all")
print(dataframe1)

Resultado:

   Attendance    Name  Obtained Marks
0        60.0  Olivia             NaN
1         NaN    John            75.0
2        80.0   Laura            82.0
3         NaN     Ben            64.0
4        95.0   Kevin             NaN

Las filas que contienen los valores que faltan no se eliminan porque el parámetro how tiene el valor fijado en all, lo que significa que todos los valores de la fila deben ser nulos.

Si todos los valores faltan en el eje especificado, entonces DataFrame.dropna() método deja caer ese eje incluso cuando el parámetro how está establecido en all.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: None, 1: None, 2: None, 3: None, 4: None},
    }
)

print(dataframe)
print("--------")
dataframe1 = dataframe.dropna(axis=1, how="all")
print(dataframe1)

Resultado:

   Attendance    Name Obtained Marks
0        60.0  Olivia           None
1         NaN    John           None
2        80.0   Laura           None
3         NaN     Ben           None
4        95.0   Kevin           None
--------
   Attendance    Name
0        60.0  Olivia
1         NaN    John
2        80.0   Laura
3         NaN     Ben
4        95.0   Kevin

Códigos de ejemplo: DataFrame.dropna() Con un subconjunto o trilla especificada

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
    }
)

dataframe1 = dataframe.dropna(thresh=3)
print(dataframe1)

Resultado:

   Attendance   Name  Obtained Marks
2        80.0  Laura            82.0

El valor de thresh es 3, lo que significa que para evitar la caída, se requieren al menos 3 valores no vacíos.

También podríamos especificar el subset.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
    }
)

dataframe1 = dataframe.dropna(subset=["Attendance", "Name"])
print(dataframe1)

Resultado:

   Attendance    Name  Obtained Marks
0        60.0  Olivia             NaN
2        80.0   Laura            82.0
4        95.0   Kevin             NaN

Suelta las filas con valores faltantes en base a la columna Attendance y Name. No deja filas si sólo los valores de otras columnas, Obtained Marks aquí, tienen valores perdidos.

Códigos de ejemplo: DataFrame.dropna() Con inplace=True

DataFrame.dropna cambia la llamada DataFrame en el lugar si inplace está configurado como True.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "Attendance": {0: 60, 1: None, 2: 80, 3: None, 4: 95},
        "Name": {0: "Olivia", 1: "John", 2: "Laura", 3: "Ben", 4: "Kevin"},
        "Obtained Marks": {0: None, 1: 75, 2: 82, 3: 64, 4: None},
    }
)
dataframe1 = dataframe.dropna(inplace=True)
print(dataframe1)

Resultado:

None

El parámetro ha modificado el llamador DataFrame en su lugar y devuelve None.

Artículo relacionado - Pandas DataFrame