Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Função para calcular outliers

import pandas as pd

def retornar_outliers(df, id, coluna):
    q1 = df[coluna].quantile(.25)
    q3 = df[coluna].quantile(.75)
    iqr = q3 - q1
    li = q1 - 1.5 * iqr
    ls = q3 + 1.5 * iqr

    idx_outliers =  (df[coluna] < li) | (df[coluna] > ls)
    df_outliers = df[idx_outliers][[id, coluna]]
    return(df_outliers)
    
# criando um DataFrame com 30 transações aleatórias
df = pd.DataFrame({
    'ID da transação': range(1, 31),
    'Valor da transação': [100, 200, 150, 500, 300, 913, 250, 400, 200, 150, 
                           200, 200, 400, 300, 150, 301, 805, 300, 400, 250, 
                           150, 100, 500, 600, 200, 350, 100, 250, 800, 250],
    'Data da transação': pd.date_range(start='2022-01-01', end='2022-01-30', freq='D'),
    'Local da transação': ['São Paulo, Brasil', 'Rio de Janeiro, Brasil', 'Belo Horizonte, Brasil', 'São Paulo, Brasil', 
                           'São Paulo, Brasil', 'Nova Iorque, EUA', 'São Paulo, Brasil', 'São Paulo, Brasil', 'São Paulo, Brasil',
                           'Rio de Janeiro, Brasil', 'São Paulo, Brasil', 'São Paulo, Brasil', 'São Paulo, Brasil', 'São Paulo, Brasil',
                           'São Paulo, Brasil', 'São Paulo, Brasil', 'Los Angeles, EUA', 'São Paulo, Brasil', 'São Paulo, Brasil', 'São Paulo, Brasil',
                           'São Paulo, Brasil', 'São Paulo, Brasil', 'São Paulo, Brasil', 'São Paulo, Brasil', 'São Paulo, Brasil', 'São Paulo, Brasil',
                           'São Paulo, Brasil', 'São Paulo, Brasil', 'Miami, EUA', 'São Paulo, Brasil']
})
    
    retornar_outliers(df, 'ID da transação', 'Valor da transação')
    
1 resposta
solução!

Boa noite, Paulo! Tudo bem com você?

Obrigado por compartilhar seu código com a comunidade Alura. Notei que há um pequeno erro de digitação na definição dos limites. O limite superior deve ser calculado como q3 + 1.5 * iqr, e não q1 + 1.5 * iqr. Abaixo o cálculo correto:

ls = q3 + 1.5 * iqr

Espero ter ajudado. Conte com o apoio do Fórum na sua jornada. Fico à disposição. Abraços e bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado