Pandas DataFrame DataFrame.dropna() Função

Minahil Noor 30 janeiro 2023
  1. Sintaxe de pandas.DataFrame.dropna()
  2. Códigos de exemplo: DataFrame.dropna() para eliminar a linha
  3. Códigos de exemplo: DataFrame.dropna() a Coluna Drop
  4. Códigos de exemplo: DataFrame.dropna() Com how=all
  5. Códigos de exemplo: DataFrame.dropna() Com um subconjunto especificado ou Thresh
  6. Códigos de exemplo: DataFrame.dropna() Com inplace=True
Pandas DataFrame DataFrame.dropna() Função

A função pandas.DataFrame.dropna() remove os valores nulos (valores ausentes) do DataFrame, deixando cair as linhas ou colunas que contêm os valores nulos.

Os valores nulos são NaN (Not a Number) e NaT (Not a Time). O DataFrame.dropna() detecta esses valores e filtra o DataFrame de acordo.

Sintaxe de pandas.DataFrame.dropna()

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

Parâmetros

axis Ele determina o eixo a ser ou linha ou coluna.
Se for 0 ou 'index', então ele deixa cair as linhas contendo os valores em falta.
Se for 1 ou 'columns', então ele deixa cair as colunas que contêm os valores em falta. Por padrão, seu valor é 0.
how Este parâmetro determina como a função deixa cair as linhas ou colunas. Ele aceita apenas dois strings, ou any ou all. Por padrão, ele é definido como any.
any deixa cair a linha ou coluna se houver algum valor nulo nela.
all deixa cair a linha ou coluna se todos os valores estiverem faltando nela.
thresh É um inteiro que especifica o menor número de valores não faltosos que impedem que as linhas ou colunas caiam.
subset É um array que possui os nomes das linhas ou colunas para especificar o procedimento de eliminação.
inplace É um valor booleano que muda o chamador DataFrame se definido como True. Por padrão, seu valor é False.

Retornar

Ele retorna um DataFrame filtrado com linhas ou colunas descartadas de acordo com os parâmetros passados.

Códigos de exemplo: DataFrame.dropna() para eliminar a linha

Por padrão, o eixo é 0, ou seja, linhas, de modo que todas as saídas têm filas descidas.

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)

O exemplo DataFrame é o seguinte.

   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 os parâmetros desta função são opcionais. Se não passarmos nenhum parâmetro, então a função deixa cair todas as linhas contendo um ú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

Todas as linhas que continham um único valor nulo foram descartadas.

Códigos de exemplo: DataFrame.dropna() a Coluna Drop

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

Ele deixou cair todas as colunas que continham um único valor em falta porque definimos axis=1 no método DataFrame.dropna().

Códigos de exemplo: DataFrame.dropna() Com 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

As linhas contendo os valores em falta não são descartadas porque o parâmetro how tem valor definido para all, o que significa que todos os valores da linha devem ser nulos.

Se todos os valores estiverem faltando no eixo especificado, então o método DataFrame.dropna() cai esse eixo mesmo quando o how está configurado para ser 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 exemplo: DataFrame.dropna() Com um subconjunto especificado ou Thresh

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

O valor de thresh é 3, o que significa que para evitar a queda, são necessários pelo menos 3 valores não vazios.

Poderíamos também especificar o 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

Ele deixa cair linhas com valores ausentes com base na coluna Attendance e Name. Ela não deixa cair linhas se apenas os valores em outras colunas, Obtained Marks aqui, tiverem valores faltantes.

Códigos de exemplo: DataFrame.dropna() Com inplace=True

DataFrame.dropna() muda o chamador DataFrame no local se inplace estiver definido para 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

O parâmetro modificou o chamador DataFrame no local e retornou None.

Artigo relacionado - Pandas DataFrame