0Pricing
Pandas & NumPy Academy · Aula

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.000000

value_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.17

unique() 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())   # 3

map() 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.0

apply() 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    2

sort_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    30

isin() 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    99

rename() 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: updated

idxmin() 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   60

Verificaçã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

  1. Criando uma Series
  2. Acesso por rótulo e por posição
  3. Operações vetorizadas em Series
  4. Métodos úteis de Series
← Voltar para Pandas & NumPy Academy