Tratamento de Outliers no Pandas: Estratégias e Exemplos

Data Science (27 Part Series)

1 Aprimorando a Seleção, Filtragem e Agrupamento de Dados no Pandas
2 Operadores Relacionais e Lógicos no Pandas: Simplificando a Filtragem de Dados
23 more parts…
3 Python Pandas: Explorando a Função “read” e suas Possibilidades
4 Desmistificando e Simplificando a Biblioteca NumPy em Python
5 Explorando Estruturas de Dados e Laços no Python: Sets, Arrays, Loops, Listas e Dicionários
6 Explorando as Funções Básicas no Python Pandas: Manipulação e Análise de Dados Simplificadas
7 Simplificando a Análise de Dados Textuais com Manipulação de Strings no Pandas
8 Desvendando a Sintaxe das Expressões Regulares em Python: Um Guia Completo
9 Utilização e Aplicação do Método melt() no Pandas
10 Utilização e Aplicação do `json_normalize()` no Pandas
11 Introdução ao método `apply()` e lambda no Pandas: Um Guia Completo
12 Tratamento de Dados Nulos no Pandas: Uma Abordagem Completa e Detalhada
13 Pandas `get_dummies`: Uma Abordagem Completa com Exemplos
14 Tratamento de Outliers no Pandas: Estratégias e Exemplos
15 Introdução ao Pandas: Unindo DataFrames
16 A Função `loc` do Pandas: Filtragem Detalhada e Exemplos Práticos
17 Detalhando os Diferentes Tipos de Leitura e suas parâmetros Função `read()` no Pandas
18 Guia Avançado do Método `merge` no Pandas com Exemplos
19 O Método `cut` do Pandas: Uma Ferramenta Poderosa para a Segmentação de Dados
20 Projeto de Data Science: Análise de Dados do Airbnb
21 Uma Jornada pelo Universo da Amostragem em Data Science com Python: Teoria e Prática
22 Uma Exploração Abrangente da Estatística Descritiva em Data Science com Python: Exemplos Práticos com Dataset Fictício
23 Explorando os Quantis e Quartis em Data Science com Python: Uma Análise Detalhada com Exemplos Práticos e Dataset Fictício
24 Desvendando as Relações com Correlação de Dados em Data Science usando Python: Exemplos Práticos com Dataset Fictício
25 Explorando a Poderosa Representação Gráfica em Data Science com Python: Exemplos Práticos com Dataset Fictício
26 Google Cloud Storage com Python: Um Guia Completo
27 Explorando as Funções Específicas da Biblioteca google-cloud-storage no Google Cloud Platform

Outliers são valores atípicos que estão significativamente distantes dos demais pontos de um conjunto de dados. Esses valores extremos podem ocorrer por diversos motivos, como erros de medição, comportamentos incomuns ou eventos raros. A presença de outliers pode afetar negativamente a análise e os resultados de modelos estatísticos e de machine learning. Neste artigo, vamos explorar estratégias eficazes para o tratamento de outliers utilizando a biblioteca Pandas no Python, além de fornecer exemplos práticos para cada abordagem.

Identificação de Outliers usando o IQR (Intervalo Interquartil)

O IQR (Intervalo Interquartil) é uma medida estatística útil para identificar outliers em um conjunto de dados. Ele é definido como a diferença entre o terceiro quartil (Q3) e o primeiro quartil (Q1) do conjunto de dados. Em outras palavras, o IQR abrange a faixa de valores que contém aproximadamente 50% dos dados centrais.

Para calcular o IQR e identificar os outliers, podemos seguir os seguintes passos:

  1. Calcular o primeiro quartil (Q1) e o terceiro quartil (Q3).
  2. Calcular o IQR: IQR = Q3 – Q1.
  3. Definir um limite inferior: Limite Inferior = Q1 – 1.5 * IQR.
  4. Definir um limite superior: Limite Superior = Q3 + 1.5 * IQR.
  5. Identificar os outliers como aqueles que estão abaixo do limite inferior ou acima do limite superior.

Vamos agora incluir essa abordagem no artigo, juntamente com exemplos de como remover os outliers com base no IQR.

Exemplo 1: Identificação de Outliers usando o IQR

<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>
<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'idade'</span><span>:</span> <span>[</span><span>25</span><span>,</span> <span>30</span><span>,</span> <span>32</span><span>,</span> <span>35</span><span>,</span> <span>40</span><span>,</span> <span>150</span><span>,</span> <span>42</span><span>,</span> <span>45</span><span>,</span> <span>50</span><span>]})</span>
<span># Calcular os quartis Q1 e Q3 </span><span>Q1</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.25</span><span>)</span>
<span>Q3</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.75</span><span>)</span>
<span># Calcular o IQR </span><span>IQR</span> <span>=</span> <span>Q3</span> <span>-</span> <span>Q1</span>
<span># Definir os limites inferior e superior </span><span>limite_inferior</span> <span>=</span> <span>Q1</span> <span>-</span> <span>1.5</span> <span>*</span> <span>IQR</span>
<span>limite_superior</span> <span>=</span> <span>Q3</span> <span>+</span> <span>1.5</span> <span>*</span> <span>IQR</span>
<span># Identificar outliers </span><span>outliers</span> <span>=</span> <span>data</span><span>[(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span><</span> <span>limite_inferior</span><span>)</span> <span>|</span> <span>(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span>></span> <span>limite_superior</span><span>)]</span>
<span>print</span><span>(</span><span>"Outliers:"</span><span>)</span>
<span>print</span><span>(</span><span>outliers</span><span>)</span>
<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>

<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'idade'</span><span>:</span> <span>[</span><span>25</span><span>,</span> <span>30</span><span>,</span> <span>32</span><span>,</span> <span>35</span><span>,</span> <span>40</span><span>,</span> <span>150</span><span>,</span> <span>42</span><span>,</span> <span>45</span><span>,</span> <span>50</span><span>]})</span>

<span># Calcular os quartis Q1 e Q3 </span><span>Q1</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.25</span><span>)</span>
<span>Q3</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.75</span><span>)</span>

<span># Calcular o IQR </span><span>IQR</span> <span>=</span> <span>Q3</span> <span>-</span> <span>Q1</span>

<span># Definir os limites inferior e superior </span><span>limite_inferior</span> <span>=</span> <span>Q1</span> <span>-</span> <span>1.5</span> <span>*</span> <span>IQR</span>
<span>limite_superior</span> <span>=</span> <span>Q3</span> <span>+</span> <span>1.5</span> <span>*</span> <span>IQR</span>

<span># Identificar outliers </span><span>outliers</span> <span>=</span> <span>data</span><span>[(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span><</span> <span>limite_inferior</span><span>)</span> <span>|</span> <span>(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span>></span> <span>limite_superior</span><span>)]</span>

<span>print</span><span>(</span><span>"Outliers:"</span><span>)</span>
<span>print</span><span>(</span><span>outliers</span><span>)</span>
import pandas as pd # DataFrame de exemplo data = pd.DataFrame({'idade': [25, 30, 32, 35, 40, 150, 42, 45, 50]}) # Calcular os quartis Q1 e Q3 Q1 = data['idade'].quantile(0.25) Q3 = data['idade'].quantile(0.75) # Calcular o IQR IQR = Q3 - Q1 # Definir os limites inferior e superior limite_inferior = Q1 - 1.5 * IQR limite_superior = Q3 + 1.5 * IQR # Identificar outliers outliers = data[(data['idade'] < limite_inferior) | (data['idade'] > limite_superior)] print("Outliers:") print(outliers)

Enter fullscreen mode Exit fullscreen mode

Exemplo 2: Remoção de Outliers usando o IQR

Agora, vamos remover os outliers identificados no Exemplo 1 e atualizar o DataFrame:

<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>
<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'idade'</span><span>:</span> <span>[</span><span>25</span><span>,</span> <span>30</span><span>,</span> <span>32</span><span>,</span> <span>35</span><span>,</span> <span>40</span><span>,</span> <span>150</span><span>,</span> <span>42</span><span>,</span> <span>45</span><span>,</span> <span>50</span><span>]})</span>
<span># Calcular os quartis Q1 e Q3 </span><span>Q1</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.25</span><span>)</span>
<span>Q3</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.75</span><span>)</span>
<span># Calcular o IQR </span><span>IQR</span> <span>=</span> <span>Q3</span> <span>-</span> <span>Q1</span>
<span># Definir os limites inferior e superior </span><span>limite_inferior</span> <span>=</span> <span>Q1</span> <span>-</span> <span>1.5</span> <span>*</span> <span>IQR</span>
<span>limite_superior</span> <span>=</span> <span>Q3</span> <span>+</span> <span>1.5</span> <span>*</span> <span>IQR</span>
<span># Remover outliers </span><span>data</span> <span>=</span> <span>data</span><span>[(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span>>=</span> <span>limite_inferior</span><span>)</span> <span>&</span> <span>(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span><=</span> <span>limite_superior</span><span>)]</span>
<span>print</span><span>(</span><span>data</span><span>)</span>
<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>

<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'idade'</span><span>:</span> <span>[</span><span>25</span><span>,</span> <span>30</span><span>,</span> <span>32</span><span>,</span> <span>35</span><span>,</span> <span>40</span><span>,</span> <span>150</span><span>,</span> <span>42</span><span>,</span> <span>45</span><span>,</span> <span>50</span><span>]})</span>

<span># Calcular os quartis Q1 e Q3 </span><span>Q1</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.25</span><span>)</span>
<span>Q3</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.75</span><span>)</span>

<span># Calcular o IQR </span><span>IQR</span> <span>=</span> <span>Q3</span> <span>-</span> <span>Q1</span>

<span># Definir os limites inferior e superior </span><span>limite_inferior</span> <span>=</span> <span>Q1</span> <span>-</span> <span>1.5</span> <span>*</span> <span>IQR</span>
<span>limite_superior</span> <span>=</span> <span>Q3</span> <span>+</span> <span>1.5</span> <span>*</span> <span>IQR</span>

<span># Remover outliers </span><span>data</span> <span>=</span> <span>data</span><span>[(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span>>=</span> <span>limite_inferior</span><span>)</span> <span>&</span> <span>(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span><=</span> <span>limite_superior</span><span>)]</span>

<span>print</span><span>(</span><span>data</span><span>)</span>
import pandas as pd # DataFrame de exemplo data = pd.DataFrame({'idade': [25, 30, 32, 35, 40, 150, 42, 45, 50]}) # Calcular os quartis Q1 e Q3 Q1 = data['idade'].quantile(0.25) Q3 = data['idade'].quantile(0.75) # Calcular o IQR IQR = Q3 - Q1 # Definir os limites inferior e superior limite_inferior = Q1 - 1.5 * IQR limite_superior = Q3 + 1.5 * IQR # Remover outliers data = data[(data['idade'] >= limite_inferior) & (data['idade'] <= limite_superior)] print(data)

Enter fullscreen mode Exit fullscreen mode

O uso do IQR para identificar e tratar outliers é uma abordagem robusta e eficaz em muitos cenários. Neste artigo, adicionamos ao nosso repertório a aplicação do IQR para a identificação de outliers e fornecemos exemplos de como remover esses valores extremos com base nos limites calculados. O tratamento de outliers é uma etapa crucial no pré-processamento de dados antes da análise estatística ou da construção de modelos. Lembre-se de que cada conjunto de dados é único e pode exigir ajustes específicos de acordo com a natureza do problema e a quantidade de outliers presentes. Portanto, compreender o contexto do seu problema e a distribuição dos dados é fundamental para tomar decisões adequadas no tratamento de outliers. Utilize essas técnicas em seus próprios projetos de análise de dados e explore outras estratégias disponíveis para lidar com valores extremos em suas tarefas do dia a dia. Com prática e conhecimento, você estará apto a realizar análises mais sólidas e obter insights significativos a partir dos seus dados.

Estratégias de Tratamento de Outliers

1. Remoção de Outliers

Uma abordagem simples para tratar outliers é removê-los do conjunto de dados. No entanto, essa estratégia deve ser aplicada com cuidado, pois a remoção excessiva de dados pode levar à perda de informações importantes e enviesar a análise. Vamos ilustrar como fazer isso usando o Pandas:

<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>
<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'idade'</span><span>:</span> <span>[</span><span>25</span><span>,</span> <span>30</span><span>,</span> <span>32</span><span>,</span> <span>35</span><span>,</span> <span>40</span><span>,</span> <span>150</span><span>,</span> <span>42</span><span>,</span> <span>45</span><span>,</span> <span>50</span><span>]})</span>
<span># Calcular os quartis Q1 e Q3 </span><span>Q1</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.25</span><span>)</span>
<span>Q3</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.75</span><span>)</span>
<span># Calcular o IQR </span><span>IQR</span> <span>=</span> <span>Q3</span> <span>-</span> <span>Q1</span>
<span># Definir os limites inferior e superior </span><span>limite_inferior</span> <span>=</span> <span>Q1</span> <span>-</span> <span>1.5</span> <span>*</span> <span>IQR</span>
<span>limite_superior</span> <span>=</span> <span>Q3</span> <span>+</span> <span>1.5</span> <span>*</span> <span>IQR</span>
<span># Remover outliers </span><span>data</span> <span>=</span> <span>data</span><span>[(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span>>=</span> <span>limite_inferior</span><span>)</span> <span>&</span> <span>(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span><=</span> <span>limite_superior</span><span>)]</span>
<span>print</span><span>(</span><span>data</span><span>)</span>
<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>

<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'idade'</span><span>:</span> <span>[</span><span>25</span><span>,</span> <span>30</span><span>,</span> <span>32</span><span>,</span> <span>35</span><span>,</span> <span>40</span><span>,</span> <span>150</span><span>,</span> <span>42</span><span>,</span> <span>45</span><span>,</span> <span>50</span><span>]})</span>

<span># Calcular os quartis Q1 e Q3 </span><span>Q1</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.25</span><span>)</span>
<span>Q3</span> <span>=</span> <span>data</span><span>[</span><span>'idade'</span><span>].</span><span>quantile</span><span>(</span><span>0.75</span><span>)</span>

<span># Calcular o IQR </span><span>IQR</span> <span>=</span> <span>Q3</span> <span>-</span> <span>Q1</span>

<span># Definir os limites inferior e superior </span><span>limite_inferior</span> <span>=</span> <span>Q1</span> <span>-</span> <span>1.5</span> <span>*</span> <span>IQR</span>
<span>limite_superior</span> <span>=</span> <span>Q3</span> <span>+</span> <span>1.5</span> <span>*</span> <span>IQR</span>

<span># Remover outliers </span><span>data</span> <span>=</span> <span>data</span><span>[(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span>>=</span> <span>limite_inferior</span><span>)</span> <span>&</span> <span>(</span><span>data</span><span>[</span><span>'idade'</span><span>]</span> <span><=</span> <span>limite_superior</span><span>)]</span>

<span>print</span><span>(</span><span>data</span><span>)</span>
import pandas as pd # DataFrame de exemplo data = pd.DataFrame({'idade': [25, 30, 32, 35, 40, 150, 42, 45, 50]}) # Calcular os quartis Q1 e Q3 Q1 = data['idade'].quantile(0.25) Q3 = data['idade'].quantile(0.75) # Calcular o IQR IQR = Q3 - Q1 # Definir os limites inferior e superior limite_inferior = Q1 - 1.5 * IQR limite_superior = Q3 + 1.5 * IQR # Remover outliers data = data[(data['idade'] >= limite_inferior) & (data['idade'] <= limite_superior)] print(data)

Enter fullscreen mode Exit fullscreen mode

2. Substituição por Valores Limites

Outra abordagem é substituir os outliers por valores limites adequados, que não afetem negativamente a análise, mas ainda mantenham a integridade dos dados. Por exemplo, podemos substituir os valores extremos pela mediana do conjunto de dados:

<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>
<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'salario'</span><span>:</span> <span>[</span><span>2500</span><span>,</span> <span>2800</span><span>,</span> <span>3000</span><span>,</span> <span>3200</span><span>,</span> <span>3500</span><span>,</span> <span>100000</span><span>,</span> <span>3800</span><span>,</span> <span>4000</span><span>,</span> <span>4200</span><span>]})</span>
<span># Calculando a mediana do salário </span><span>median_salary</span> <span>=</span> <span>data</span><span>[</span><span>'salario'</span><span>].</span><span>median</span><span>()</span>
<span># Substituindo outliers pelo valor da mediana </span><span>data</span><span>.</span><span>loc</span><span>[</span><span>data</span><span>[</span><span>'salario'</span><span>]</span> <span>></span> <span>10000</span><span>,</span> <span>'salario'</span><span>]</span> <span>=</span> <span>median_salary</span>
<span>print</span><span>(</span><span>data</span><span>)</span>
<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>

<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'salario'</span><span>:</span> <span>[</span><span>2500</span><span>,</span> <span>2800</span><span>,</span> <span>3000</span><span>,</span> <span>3200</span><span>,</span> <span>3500</span><span>,</span> <span>100000</span><span>,</span> <span>3800</span><span>,</span> <span>4000</span><span>,</span> <span>4200</span><span>]})</span>

<span># Calculando a mediana do salário </span><span>median_salary</span> <span>=</span> <span>data</span><span>[</span><span>'salario'</span><span>].</span><span>median</span><span>()</span>

<span># Substituindo outliers pelo valor da mediana </span><span>data</span><span>.</span><span>loc</span><span>[</span><span>data</span><span>[</span><span>'salario'</span><span>]</span> <span>></span> <span>10000</span><span>,</span> <span>'salario'</span><span>]</span> <span>=</span> <span>median_salary</span>

<span>print</span><span>(</span><span>data</span><span>)</span>
import pandas as pd # DataFrame de exemplo data = pd.DataFrame({'salario': [2500, 2800, 3000, 3200, 3500, 100000, 3800, 4000, 4200]}) # Calculando a mediana do salário median_salary = data['salario'].median() # Substituindo outliers pelo valor da mediana data.loc[data['salario'] > 10000, 'salario'] = median_salary print(data)

Enter fullscreen mode Exit fullscreen mode

3. Transformação dos Dados

Em alguns casos, uma transformação matemática nos dados pode ajudar a reduzir o impacto dos outliers. Por exemplo, a aplicação do logaritmo nos valores pode comprimir a escala dos dados e tornar os outliers menos influentes:

<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>
<span>import</span> <span>numpy</span> <span>as</span> <span>np</span>
<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'receita'</span><span>:</span> <span>[</span><span>1000</span><span>,</span> <span>1200</span><span>,</span> <span>1500</span><span>,</span> <span>1800</span><span>,</span> <span>2000</span><span>,</span> <span>50000</span><span>,</span> <span>2200</span><span>,</span> <span>2500</span><span>,</span> <span>3000</span><span>]})</span>
<span># Aplicando a transformação logarítmica na receita </span><span>data</span><span>[</span><span>'receita'</span><span>]</span> <span>=</span> <span>np</span><span>.</span><span>log1p</span><span>(</span><span>data</span><span>[</span><span>'receita'</span><span>])</span>
<span>print</span><span>(</span><span>data</span><span>)</span>
<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>
<span>import</span> <span>numpy</span> <span>as</span> <span>np</span>

<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'receita'</span><span>:</span> <span>[</span><span>1000</span><span>,</span> <span>1200</span><span>,</span> <span>1500</span><span>,</span> <span>1800</span><span>,</span> <span>2000</span><span>,</span> <span>50000</span><span>,</span> <span>2200</span><span>,</span> <span>2500</span><span>,</span> <span>3000</span><span>]})</span>

<span># Aplicando a transformação logarítmica na receita </span><span>data</span><span>[</span><span>'receita'</span><span>]</span> <span>=</span> <span>np</span><span>.</span><span>log1p</span><span>(</span><span>data</span><span>[</span><span>'receita'</span><span>])</span>

<span>print</span><span>(</span><span>data</span><span>)</span>
import pandas as pd import numpy as np # DataFrame de exemplo data = pd.DataFrame({'receita': [1000, 1200, 1500, 1800, 2000, 50000, 2200, 2500, 3000]}) # Aplicando a transformação logarítmica na receita data['receita'] = np.log1p(data['receita']) print(data)

Enter fullscreen mode Exit fullscreen mode

4. Binning (Agrupamento)

O agrupamento dos valores em bins (intervalos) pode ser uma estratégia útil para lidar com outliers em determinados contextos. Ao agrupar os valores, os outliers são mapeados para os limites dos bins, tornando-os menos influentes nos resultados da análise:

<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>
<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'peso'</span><span>:</span> <span>[</span><span>50</span><span>,</span> <span>60</span><span>,</span> <span>70</span><span>,</span> <span>80</span><span>,</span> <span>90</span><span>,</span> <span>200</span><span>,</span> <span>100</span><span>,</span> <span>110</span><span>,</span> <span>120</span><span>]})</span>
<span># Criando bins para agrupamento de peso </span><span>bins</span> <span>=</span> <span>[</span><span>0</span><span>,</span> <span>100</span><span>,</span> <span>150</span><span>,</span> <span>200</span><span>]</span>
<span>labels</span> <span>=</span> <span>[</span><span>'leve'</span><span>,</span> <span>'médio'</span><span>,</span> <span>'pesado'</span><span>]</span>
<span># Criando uma nova coluna com os labels dos bins </span><span>data</span><span>[</span><span>'grupo_peso'</span><span>]</span> <span>=</span> <span>pd</span><span>.</span><span>cut</span><span>(</span><span>data</span><span>[</span><span>'peso'</span><span>],</span> <span>bins</span><span>=</span><span>bins</span><span>,</span> <span>labels</span><span>=</span><span>labels</span><span>)</span>
<span>print</span><span>(</span><span>data</span><span>)</span>
<span>import</span> <span>pandas</span> <span>as</span> <span>pd</span>

<span># DataFrame de exemplo </span><span>data</span> <span>=</span> <span>pd</span><span>.</span><span>DataFrame</span><span>({</span><span>'peso'</span><span>:</span> <span>[</span><span>50</span><span>,</span> <span>60</span><span>,</span> <span>70</span><span>,</span> <span>80</span><span>,</span> <span>90</span><span>,</span> <span>200</span><span>,</span> <span>100</span><span>,</span> <span>110</span><span>,</span> <span>120</span><span>]})</span>

<span># Criando bins para agrupamento de peso </span><span>bins</span> <span>=</span> <span>[</span><span>0</span><span>,</span> <span>100</span><span>,</span> <span>150</span><span>,</span> <span>200</span><span>]</span>
<span>labels</span> <span>=</span> <span>[</span><span>'leve'</span><span>,</span> <span>'médio'</span><span>,</span> <span>'pesado'</span><span>]</span>

<span># Criando uma nova coluna com os labels dos bins </span><span>data</span><span>[</span><span>'grupo_peso'</span><span>]</span> <span>=</span> <span>pd</span><span>.</span><span>cut</span><span>(</span><span>data</span><span>[</span><span>'peso'</span><span>],</span> <span>bins</span><span>=</span><span>bins</span><span>,</span> <span>labels</span><span>=</span><span>labels</span><span>)</span>

<span>print</span><span>(</span><span>data</span><span>)</span>
import pandas as pd # DataFrame de exemplo data = pd.DataFrame({'peso': [50, 60, 70, 80, 90, 200, 100, 110, 120]}) # Criando bins para agrupamento de peso bins = [0, 100, 150, 200] labels = ['leve', 'médio', 'pesado'] # Criando uma nova coluna com os labels dos bins data['grupo_peso'] = pd.cut(data['peso'], bins=bins, labels=labels) print(data)

Enter fullscreen mode Exit fullscreen mode

Conclusão

O uso do IQR para identificar e tratar outliers é uma abordagem robusta e eficaz em muitos cenários. Neste artigo, você aprendeu algumas estratégias comuns para o tratamento de outliers usando o Pandas, incluindo remoção, substituição, transformação e agrupamento. O tratamento de outliers é uma etapa crucial no pré-processamento de dados antes da análise estatística ou da construção de modelos. Lembre-se de que cada conjunto de dados é único e pode exigir ajustes específicos de acordo com a natureza do problema e a quantidade de outliers presentes. Portanto, compreender o contexto do seu problema e a distribuição dos dados é fundamental para tomar decisões adequadas no tratamento de outliers. Utilize essas técnicas em seus próprios projetos de análise de dados e explore outras estratégias disponíveis para lidar com valores extremos em suas tarefas do dia a dia. Com prática e conhecimento, você estará apto a realizar análises mais sólidas e obter insights significativos a partir dos seus dados.

Data Science (27 Part Series)

1 Aprimorando a Seleção, Filtragem e Agrupamento de Dados no Pandas
2 Operadores Relacionais e Lógicos no Pandas: Simplificando a Filtragem de Dados
23 more parts…
3 Python Pandas: Explorando a Função “read” e suas Possibilidades
4 Desmistificando e Simplificando a Biblioteca NumPy em Python
5 Explorando Estruturas de Dados e Laços no Python: Sets, Arrays, Loops, Listas e Dicionários
6 Explorando as Funções Básicas no Python Pandas: Manipulação e Análise de Dados Simplificadas
7 Simplificando a Análise de Dados Textuais com Manipulação de Strings no Pandas
8 Desvendando a Sintaxe das Expressões Regulares em Python: Um Guia Completo
9 Utilização e Aplicação do Método melt() no Pandas
10 Utilização e Aplicação do `json_normalize()` no Pandas
11 Introdução ao método `apply()` e lambda no Pandas: Um Guia Completo
12 Tratamento de Dados Nulos no Pandas: Uma Abordagem Completa e Detalhada
13 Pandas `get_dummies`: Uma Abordagem Completa com Exemplos
14 Tratamento de Outliers no Pandas: Estratégias e Exemplos
15 Introdução ao Pandas: Unindo DataFrames
16 A Função `loc` do Pandas: Filtragem Detalhada e Exemplos Práticos
17 Detalhando os Diferentes Tipos de Leitura e suas parâmetros Função `read()` no Pandas
18 Guia Avançado do Método `merge` no Pandas com Exemplos
19 O Método `cut` do Pandas: Uma Ferramenta Poderosa para a Segmentação de Dados
20 Projeto de Data Science: Análise de Dados do Airbnb
21 Uma Jornada pelo Universo da Amostragem em Data Science com Python: Teoria e Prática
22 Uma Exploração Abrangente da Estatística Descritiva em Data Science com Python: Exemplos Práticos com Dataset Fictício
23 Explorando os Quantis e Quartis em Data Science com Python: Uma Análise Detalhada com Exemplos Práticos e Dataset Fictício
24 Desvendando as Relações com Correlação de Dados em Data Science usando Python: Exemplos Práticos com Dataset Fictício
25 Explorando a Poderosa Representação Gráfica em Data Science com Python: Exemplos Práticos com Dataset Fictício
26 Google Cloud Storage com Python: Um Guia Completo
27 Explorando as Funções Específicas da Biblioteca google-cloud-storage no Google Cloud Platform

原文链接:Tratamento de Outliers no Pandas: Estratégias e Exemplos

© 版权声明
THE END
喜欢就支持一下吧
点赞7 分享
Your dream is like a flower. if you water it patiently, the flower will come out beautifully.
即使是最简单的梦想,用心浇灌,也能开出绚烂的花
评论 抢沙发

请登录后发表评论

    暂无评论内容