Pandas DataFrame.where(): Verificar condições em DataFrame
A função DataFrame.where() do Python Pandas foi criada para facilitar a manipulação de dados condicionais em DataFrames. Ela permite que programadores substituam ou mascarem os valores em um DataFrame do Pandas com base em uma condição.
- Fique online com 99,99% de tempo de atividade e segurança robusta
- Aumente o desempenho com um clique à medida que o tráfego cresce
- Inclui domínio gratuito, SSL, e-mail e suporte 24 horas por dia, 7 dias por semana
Sintaxe da função Pandas DataFrame.where()
A função where() aceita até cinco parâmetros e tem a seguinte sintaxe:
DataFrame.where(cond, other=nan, inplace=False, axis=None, level=None)pythonQuando a função é aplicada a um DataFrame, apenas os valores que atendem a uma condição específica (cond) permanecem iguais. Qualquer outro valor é substituído de acordo com a especificação do parâmetro other.
Parâmetros da função Pandas DataFrame.where()
A função Pandas DataFrame.where() aceita a inclusão de diferentes parâmetros que facilitam a administração e modificação flexível dos dados:
| Parâmetro | Descrição | Valor padrão |
|---|---|---|
cond
|
A condição que deve ser atendida para que os valores do DataFrame permaneçam inalterados | |
other
|
O valor que substitui aqueles que não atendem à condição | |
inplace
|
Quando definido como verdadeiro (True), a operação modifica o DataFrame diretamente
|
False
|
axis
|
Especifica a quais eixos a condição se aplica (axis=0 para linhas, axis=1 para colunas)
|
None
|
level
|
Define o nível de um índice múltiplo ao qual a condição deve ser aplicada | None
|
Como usar a função Pandas DataFrame.where()
A função where() pode ser útil em diversas situações que requerem manipulação de dados condicional. Isso inclui a limpeza de informações ou a criação de novas colunas baseadas em condições.
Substituir valores com base em condições
Imagine que você tenha um DataFrame com os resultados de vendas da sua empresa e deseje exibir apenas os números positivos, enquanto os negativos deverão ser substituídos por 0. Para fazer isso, use a função Pandas DataFrame.where(). Primeiro, é preciso criar um DataFrame:
import pandas as pd
# Criar um DataFrame de exemplo
data = {
'Região': ['Norte', 'Sul', 'Leste', 'Oeste'],
'Vendas_1Q': [15000, -5000, 3000, -1000],
'Vendas_2Q': [20000, 25000, -7000, 5000]
}
df = pd.DataFrame(data)
print(df)pythonO código acima produzirá o seguinte DataFrame:
Região Vendas_1Q Vendas_2Q
0 Norte 15000 20000
1 Sul -5000 25000
2 Leste 3000 -7000
3 Oeste -1000 5000Com a função Pandas DataFrame.where(), você pode substituir todos os valores negativos por 0. Certifique-se de que apenas colunas com valores numéricos serão incluídas, do contrário, o procedimento não funcionará.
# Substituir valores usando condições
df_positivo = df.copy()
df_positivo[['Vendas_1Q', 'Vendas_2Q']] = df[['Vendas_1Q', 'Vendas_2Q']].where(df[['Vendas_1Q', 'Vendas_2Q']] > 0, 0)
print(df_positivo)pythonO DataFrame resultante, df_positivo, exibirá apenas os resultados de vendas positivos e substituirá os negativos por 0:
Região Vendas_1Q Vendas_2Q
0 Norte 15000 20000
1 Sul 0 25000
2 Leste 3000 0
3 Oeste 0 5000Mascarar valores usando condições
A função Pandas DataFrame.where() também pode ser usada para mascarar valores. Isso significa que apenas as partes específicas de um DataFrame serão exibidas. No exemplo a seguir, queremos mostrar apenas os valores acima de um patamar (neste caso, 10000). Lembre-se de que, nesse caso, é preciso avaliar apenas colunas com dados numéricos:
# Exibir apenas os valores acima de 10000
df_mascarado = df.copy()
df_mascarado[['Vendas_1Q', 'Vendas_2Q']] = df[['Vendas_1Q', 'Vendas_2Q']].where(df[['Vendas_1Q', 'Vendas_2Q']] > 10000)
print(df_mascarado)pythonO DataFrame produzido, df_mascarado, exibirá apenas os valores superiores a 10000. Todos os demais valores serão substituídos por NaN:
Região Vendas_1Q Vendas_2Q
0 Norte 15000 20000
1 Sul NaN 25000
2 Leste NaN NaN
3 Oeste NaN NaN
