Pandas DataFrame DataFrame.where() Função

Minahil Noor 30 janeiro 2023
  1. Sintaxe de pandas.DataFrame.where()
  2. Códigos de exemplo: DataFrame.where()
  3. Códigos de exemplo: DataFrame.where() para especificar um valor
  4. Códigos de exemplo: DataFrame.where() para utilizar múltiplas condições
Pandas DataFrame DataFrame.where() Função

Python Pandas DataFrame.where() função aceita uma condição como parâmetro e produz resultados em conformidade. Verifica a condição para cada valor do DataFrame e selecciona os valores que aceitam a condição. A funcionalidade da mesma é semelhante à declaração if-else. O valor que não aceita a condição é substituído por um valor NaN por defeito.

Sintaxe de pandas.DataFrame.where()

DataFrame.where(
    cond,
    other=NaN,
    inplace=False,
    axis=None,
    level=None,
    errors="raise",
    try_cast=False,
)

Parâmetros

Esta função tem vários parâmetros. Os valores por defeito de todos os parâmetros são mencionados acima.

cond É uma Series ou DataFrame booleana, uma estrutura semelhante a um arraial ou, uma estrutura chamável. Representa a condição/condições a verificar para cada valor do DataFrame. Se a condição for True, então o valor original não é substituído. Caso contrário, é substituído por um valor NaN.
other É um escalar, Series/DataFrame, ou um chamável. Representa o valor que será colocado para o valor original se a condição for False.
inplace É um valor booleano. Fala sobre a operação com dados. Se True, ele próprio faz alterações.
axis É um valor inteiro. Fala sobre o eixo de trabalho quer em filas quer em colunas.
level É um valor inteiro. Fala sobre o nível.
errors É um string. Fala sobre os erros. Aceita duas opções: raise ou ignore. Se o seu valor é raise, então permite que se levantem excepções. Se o seu valor é ignore, então ignora as excepções e devolve o objecto original se houver um erro.
try_cast É um valor booleano. Se possível, a saída da função é do tipo de entrada original.

Devolver

Devolve o DataFrame alterado, dependendo da condição.

Códigos de exemplo: DataFrame.where()

Vamos aprender mais sobre esta função implementando-a no próximo exemplo de código.

import pandas as pd

dataframe=pd.DataFrame({
                        'A': 
                            {0: 60, 
                            1: 100, 
                            2: 80,
                            3: 78,
                            4: 95,
                            5: 45,
                            6: 67,
                            7: 12,
                            8: 23,
                            9: 50},
                        'B': 
                            {0: 90, 
                            1: 75, 
                            2: 82, 
                            3: 64, 
                            4: 45,
                            5: 35,
                            6: 74,
                            7: 52,
                            8: 93,
                            9: 18}
                        })

print(dataframe)

O exemplo DataFrame é,

     A   B
0   60  90
1  100  75
2   80  82
3   78  64
4   95  45
5   45  35
6   67  74
7   12  52
8   23  93
9   50  18

Esta função tem um parâmetro obrigatório, ou seja, cond.

import pandas as pd

dataframe = pd.DataFrame(
    {
        "A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
        "B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
    }
)

dataframe1 = dataframe.where(dataframe > 50)
print(dataframe1)

Resultado:

       A     B
0   60.0  90.0
1  100.0  75.0
2   80.0  82.0
3   78.0  64.0
4   95.0   NaN
5    NaN   NaN
6   67.0  74.0
7    NaN  52.0
8    NaN  93.0
9    NaN   NaN

Os valores que não são superiores a 50, ou seja, que não satisfazem a condição, são substituídos por um valor NaN.

Códigos de exemplo: DataFrame.where() para especificar um valor

import pandas as pd

dataframe = pd.DataFrame(
    {
        "A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
        "B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
    }
)

dataframe1 = dataframe.where(dataframe > 50, other=0)
print(dataframe1)

Resultado:

     A   B
0   60  90
1  100  75
2   80  82
3   78  64
4   95   0
5    0   0
6   67  74
7    0  52
8    0  93
9    0   0

Aqui, os valores que não satisfazem a condição são substituídos por um valor definido pelo utilizador.

Códigos de exemplo: DataFrame.where() para utilizar múltiplas condições

import pandas as pd

dataframe = pd.DataFrame(
    {
        "A": {0: 60, 1: 100, 2: 80, 3: 78, 4: 95, 5: 45, 6: 67, 7: 12, 8: 23, 9: 50},
        "B": {0: 90, 1: 75, 2: 82, 3: 64, 4: 45, 5: 35, 6: 74, 7: 52, 8: 93, 9: 18},
    }
)

dataframe1 = dataframe.where((dataframe == 80) | (dataframe < 50), other=0)
print(dataframe1)

Resultado:

    A   B
0   0   0
1   0   0
2  80   0
3   0   0
4   0  45
5  45  35
6   0   0
7  12   0
8  23   0
9   0  18

O DataFrame devolvido contém os valores que satisfazem ambas as condições.

Artigo relacionado - Pandas DataFrame