Métodos úteis de Series
Use describe(), value_counts(), unique() e map() para resumir e transformar uma Series rapidamente.
Métodos úteis de Series é uma aula grátis de Pandas & NumPy Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Pandas & NumPy Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Pandas & NumPy Academy inclui 4 aulas no total.
Resumo rápido com describe()
s.describe() gera um resumo estatístico em uma única chamada: contagem, média, desvio padrão, mínimo, percentil 25 (Q1), mediana (Q2), percentil 75 (Q3) e máximo. Para Series de texto, retorna contagem, valores únicos, valor mais frequente e frequência. É a maneira mais rápida de obter uma visão da distribuição de uma coluna ao explorar um conjunto de dados pela primeira vez.
import pandas as pd
ages = pd.Series([25, 32, 19, 45, 28, 31, 22, 40])
print(ages.describe())
# count 8.000000
# mean 30.250000
# std 8.406...
# min 19.000000
# 25% 24.250000
# 50% 29.500000
# 75% 34.750000
# max 45.000000value_counts() para tabelas de frequência
s.value_counts() retorna uma nova Series com os valores únicos como índice e suas contagens de ocorrência como dados, ordenadas em ordem decrescente de contagem. Passe normalize=True para obter proporções em vez de contagens brutas. Essa é a primeira operação a executar em uma coluna categórica para entender sua distribuição.
import pandas as pd
colors = pd.Series(['red', 'blue', 'red', 'green', 'blue', 'red'])
print(colors.value_counts())
# red 3
# blue 2
# green 1
print(colors.value_counts(normalize=True).round(2))
# red 0.50 blue 0.33 green 0.17unique() e nunique()
s.unique() retorna uma matriz do NumPy com os valores distintos na ordem em que aparecem pela primeira vez (ao contrário de value_counts, que ordena por frequência). s.nunique() retorna como inteiro a contagem de valores distintos — a cardinalidade da coluna. Por padrão, ambos ignoram NaN. Use nunique(dropna=False) para contar NaN como um valor distinto.
import pandas as pd
s = pd.Series(['apple', 'banana', 'apple', 'cherry', 'banana'])
print(s.unique()) # ['apple' 'banana' 'cherry']
print(s.nunique()) # 3map() para transformação elemento a elemento
s.map() aplica uma função, um dicionário ou outra Series a cada elemento. Quando você passa um dicionário, cada valor é substituído pelo valor correspondente do dicionário, e os valores que não estão nele se tornam NaN. Quando você passa uma função, ela é aplicada elemento a elemento. map é ideal para recodificar rótulos categóricos ou aplicar tabelas de consulta.
import pandas as pd
grades = pd.Series(['A', 'B', 'C', 'A', 'B'])
gpa = {'A': 4.0, 'B': 3.0, 'C': 2.0}
print(grades.map(gpa))
# 0 4.0
# 1 3.0
# 2 2.0
# 3 4.0
# 4 3.0apply() para funções personalizadas
s.apply(func) aplica um objeto chamável do Python a cada elemento e reúne os resultados. Ao contrário de map(), foi projetado para funções mais complexas que podem retornar objetos não escalares. Para transformações simples elemento a elemento, prefira map() ou uma expressão vetorizada; use apply() quando a lógica for complexa demais para ser vetorizada diretamente.
import pandas as pd
sentences = pd.Series(['Hello world', 'Pandas is great', 'Data science'])
word_counts = sentences.apply(lambda x: len(x.split()))
print(word_counts)
# 0 2
# 1 3
# 2 2sort_values() e sort_index()
s.sort_values() retorna a Series ordenada pelos valores dos dados em ordem crescente (passe ascending=False para ordem decrescente). s.sort_index() ordena pelos rótulos do índice. Por padrão, nenhum dos dois modifica a Series original. Passe inplace=True para modificar no próprio objeto (menos recomendado no código moderno do Pandas que encadeia operações).
import pandas as pd
s = pd.Series([30, 10, 50, 20], index=['d', 'a', 'c', 'b'])
print(s.sort_values())
# a 10
# b 20
# d 30
# c 50
print(s.sort_index())
# a 10
# b 20
# c 50
# d 30isin() para testar associação
s.isin(values) retorna uma Series booleana que é True sempre que o elemento está na lista ou no conjunto fornecido. Isso é mais legível do que várias condições com | e é significativamente mais rápido para conjuntos grandes. É usado com frequência para filtrar linhas pertencentes a um grupo específico ou sinalizar registros que correspondem a uma lista de consulta.
import pandas as pd
countries = pd.Series(['DE', 'US', 'FR', 'UK', 'US', 'DE'])
nordics = ['DE', 'FR']
print(countries.isin(nordics))
# 0 True 1 False 2 True 3 False 4 False 5 True
print(countries[countries.isin(nordics)])between() para filtrar por intervalo
s.between(left, right, inclusive='both') retorna uma Series booleana que é True quando o valor está dentro do intervalo [left, right]. Por padrão, os dois limites são inclusivos. Isso é mais conciso do que escrever (s >= left) & (s <= right) e comunica claramente a intenção. É útil para filtrar intervalos numéricos, como faixas etárias ou de preços.
import pandas as pd
scores = pd.Series([45, 72, 83, 91, 55, 68])
pass_mask = scores.between(60, 100)
print(pass_mask)
# 0 False 1 True 2 True 3 True 4 False 5 True
print(scores[pass_mask].values) # [72 83 91 68]head() e tail() para uma inspeção rápida
s.head(n) retorna os primeiros n elementos (5 por padrão) e s.tail(n) retorna os últimos n. Esses métodos são usados constantemente durante a exploração de dados para visualizar o início e o fim de uma Series longa sem imprimir milhares de linhas. Eles retornam uma nova Series (uma fatia), portanto não modificam a original.
import pandas as pd
s = pd.Series(range(100))
print(s.head(3))
# 0 0
# 1 1
# 2 2
print(s.tail(3))
# 97 97
# 98 98
# 99 99rename() para alterar o nome
s.rename('new_name') retorna uma nova Series com um atributo name diferente. Para renomear os rótulos do índice, passe um dicionário ou uma função: s.rename(index={'old': 'new'}). Renomear é importante antes de combinar Series em um DataFrame, pois o name da Series se torna o cabeçalho da coluna. Sempre renomeie em vez de reatribuir valores brutos.
import pandas as pd
s = pd.Series([1, 2, 3], index=['a', 'b', 'c'], name='original')
renamed = s.rename('updated').rename(index={'a': 'x', 'b': 'y', 'c': 'z'})
print(renamed)
# x 1
# y 2
# z 3
# Name: updatedidxmin() e idxmax()
s.idxmin() retorna o rótulo do índice do menor valor, e s.idxmax() retorna o rótulo do maior valor. Isso é mais útil do que argmin/argmax quando o índice tem rótulos significativos, como datas ou nomes de produtos — você obtém o identificador real, não apenas um número de posição.
import pandas as pd
scores = pd.Series({'Alice': 88, 'Bob': 73, 'Carol': 95, 'Dan': 60})
print('Best:', scores.idxmax(), scores.max()) # Carol 95
print('Worst:', scores.idxmin(), scores.min()) # Dan 60Verificação rápida
Teste sua compreensão dos métodos úteis de Series apresentados nesta lição.
Recapitulação da lição
Nesta lição, você aprendeu que: describe() fornece um resumo estatístico em uma única chamada, value_counts() cria uma tabela de frequência dos valores exclusivos e map() traduz valores usando um dicionário, enquanto apply() executa uma função personalizada em cada elemento. A seguir, começaremos a trabalhar com DataFrames — a principal estrutura bidimensional para a análise de dados com Pandas.
Perguntas Frequentes
A aula “Métodos úteis de Series” é grátis?
Sim — o texto completo de “Métodos úteis de Series” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Pandas & NumPy Academy, atualize para CoddyKit PRO. O curso de Pandas & NumPy Academy inclui 4 aulas no total.
O que vou aprender em “Métodos úteis de Series”?
Use describe(), value_counts(), unique() e map() para resumir e transformar uma Series rapidamente. Você pratica Pandas & NumPy Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Pandas & NumPy Academy?
Nenhuma experiência prévia é necessária. Pandas & NumPy Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Métodos úteis de Series”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Pandas & NumPy Academy?
Sim. Cada aula de Pandas & NumPy Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Criando uma Series
- Acesso por rótulo e por posição
- Operações vetorizadas em Series
- Métodos úteis de Series