W3docs

Média, Mediana e Moda em Python

Aprenda a calcular média, mediana e moda em Python com numpy e statistics. Exemplos reais, quando usar cada uma e como tratar valores ausentes.

Média, mediana e moda são as três medidas de tendência central fundamentais em estatística. Cada uma descreve o "centro" de um conjunto de dados de forma diferente, e saber qual utilizar — e quando — é uma das primeiras habilidades práticas necessárias para a preparação de dados em machine learning.

Este capítulo aborda:

  • O que cada medida significa e como é calculada
  • Como calculá-las em Python com numpy e o módulo statistics
  • Quando preferir uma medida em vez de outra
  • Como utilizá-las para preencher valores ausentes (imputação)

O que São Média, Mediana e Moda?

As três medidas resumem um conjunto de dados com um único valor representativo, mas capturam aspectos diferentes da distribuição:

MedidaDefiniçãoMelhor para
MédiaSoma de todos os valores ÷ quantidadeDados simétricos com distribuição normal
MedianaValor central quando ordenadoDados assimétricos ou com valores extremos
ModaValor que ocorre com maior frequênciaDados categóricos ou contagens discretas

Compreender a distribuição de dados ajuda a decidir qual medida é mais adequada para o seu conjunto de dados.

Média

A média (média aritmética) soma todos os valores e divide pela quantidade de valores.

Fórmula: mean = (x₁ + x₂ + … + xₙ) / n

Use numpy.mean() para calculá-la em Python:

Calcular a média de uma lista usando numpy

python— editable, runs on the server

Quando usar a média

A média funciona bem quando os dados não têm valores extremos e seguem uma distribuição aproximadamente simétrica. Quando há valores extremos, eles puxam a média em sua direção, tornando-a uma representação fraca do valor "típico".

Média vs. mediana com um valor extremo

import numpy as np

salaries = [40000, 42000, 45000, 48000, 50000, 300000]
print(f"Mean:   {np.mean(salaries):.0f}")    # Output: 87500
print(f"Median: {np.median(salaries):.0f}")  # Output: 46500

Aqui a média é 87 500 — muito maior do que cinco dos seis salários — porque um valor extremo (300 000) a distorce para cima. A mediana (46 500) representa melhor o que um funcionário típico ganha.

Mediana

A mediana é o valor central de um conjunto de dados ordenado.

  • Número ímpar de valores: o elemento do meio.
  • Número par de valores: a média dos dois elementos centrais.

Use numpy.median():

Calcular a mediana de uma lista usando numpy

python— editable, runs on the server

Conjunto com quantidade par — a mediana é a média dos dois valores centrais

import numpy as np

data_even = [1, 3, 5, 7]
print(np.median(data_even))  # Output: 4.0  (average of 3 and 5)

Quando usar a mediana

A mediana é a medida de tendência central preferida sempre que os dados são assimétricos ou contêm valores extremos, pois não é afetada por valores muito altos ou baixos. Renda, preços de imóveis e distribuições de idade são exemplos clássicos em que a mediana é mais informativa do que a média.

Moda

A moda é o valor que aparece com maior frequência em um conjunto de dados. Um conjunto de dados pode ter:

  • Nenhuma moda — quando todos os valores aparecem o mesmo número de vezes.
  • Uma moda (unimodal) — o caso mais comum.
  • Múltiplas modas (multimodal) — dois ou mais valores empatam na maior frequência.

Use statistics.mode() da biblioteca padrão:

Calcular a moda de uma lista usando o módulo statistics

python— editable, runs on the server

Tratando dados multimodais

statistics.mode() lança um StatisticsError no Python 3.7 e versões anteriores quando há empate. No Python 3.8+, retorna a primeira moda encontrada. Para recuperar todas as modas com segurança, use statistics.multimode():

Encontrar todas as modas quando os dados têm múltiplos picos

import statistics

votes = [1, 1, 2, 2, 3]
print(statistics.multimode(votes))  # Output: [1, 2]

Moda para dados numéricos

A moda é mais natural para dados categóricos ou inteiros discretos, mas também funciona para dados numéricos contínuos:

import statistics

scores = [10, 20, 20, 30, 40]
print(statistics.mode(scores))  # Output: 20

Quando usar a moda

Use a moda ao trabalhar com atributos categóricos (cores, rótulos, categorias de produtos) ou quando precisar saber o item mais popular — por exemplo, o tipo de defeito mais comum em um conjunto de dados de controle de qualidade.

Comparando as Três Medidas

O exemplo abaixo mostra como média, mediana e moda divergem em um conjunto de dados assimétrico. Alguns funcionários mais velhos puxam a média para cima, enquanto a mediana e a moda ficam próximas de onde a maioria dos dados realmente se concentra:

Comparar média, mediana e moda em dados assimétricos

import numpy as np
import statistics

ages = [22, 23, 24, 24, 25, 25, 25, 26, 60]

print(f"Mean:   {np.mean(ages):.1f}")         # Output: 28.2
print(f"Median: {np.median(ages):.1f}")       # Output: 25.0
print(f"Mode:   {statistics.mode(ages)}")     # Output: 25

A média (28.2) é puxada para cima pelo único funcionário de 60 anos. A mediana e a moda (ambas 25) representam com precisão o funcionário típico.

Usando Média e Mediana para Imputar Valores Ausentes

Uma etapa comum de pré-processamento antes de treinar um modelo é substituir valores ausentes (NaN) por uma estatística representativa. Isso é chamado de imputação.

  • Imputação pela média — substitui NaN pela média da coluna. Rápida, mas sensível a valores extremos.
  • Imputação pela mediana — substitui NaN pela mediana. Robusta a valores extremos; preferida para atributos assimétricos.
  • Imputação pela moda — substitui NaN pelo valor mais frequente. Adequada para colunas categóricas.

Imputação pela média com numpy

import numpy as np

data = [10.0, 20.0, float('nan'), 40.0, 50.0]
mean_val = np.nanmean(data)          # ignores NaN: (10+20+40+50)/4 = 30.0
imputed = [mean_val if np.isnan(x) else x for x in data]
print(imputed)
# Output: [10.0, 20.0, 30.0, 40.0, 50.0]

No código em produção, normalmente se utiliza o sklearn.impute.SimpleImputer, que se integra de forma limpa às pipelines do scikit-learn e aplica as mesmas estatísticas ajustadas tanto nos conjuntos de treino quanto nos de teste.

Referência Rápida: Qual Medida Escolher

CenárioMedida recomendada
Dados numéricos com distribuição normalMédia
Dados numéricos assimétricos (renda, preços)Mediana
Dados com valores extremosMediana
Dados categóricos (rótulos, cores)Moda
Imputação de colunas numéricas com valores extremosMediana
Imputação de colunas categóricasModa
Encontrar o valor mais popularModa

Tópicos Relacionados

  • Distribuição de Dados — entenda distribuições normais, assimétricas e uniformes antes de escolher uma medida.
  • Desvio Padrão — meça o quanto seus dados estão dispersos em torno da média.
  • Percentil — classifique valores em relação ao restante do conjunto de dados.
  • Escala — técnicas de escalonamento de atributos que se baseiam nessas estatísticas.

Conclusão

Média, mediana e moda capturam aspectos diferentes do centro dos seus dados. A média é o padrão mais comum, mas é frágil na presença de valores extremos. A mediana é robusta e deve ser a primeira escolha para distribuições assimétricas. A moda é indispensável para dados categóricos e para consultas rápidas de "valor mais comum". Em machine learning, as três aparecem regularmente na análise exploratória de dados e na imputação de valores ausentes — escolher a correta para cada coluna resulta em atributos mais limpos e melhor desempenho do modelo.

Was this page helpful?