Pandas: Introdução a Séries
Última atualização: 2026-08-26
Uma Series é a estrutura de dados mais fundamental no Pandas — pense nela como um "array unidimensional rotulado". Uma Series é composta por duas partes: dados (um ndarray NumPy) e rótulos (um Index). É o Index que eleva uma Series além de um array comum e dá a cada valor um "nome". Esta seção começa pelo que uma Series realmente é e o guia pela criação, operação e uso de seus métodos mais comuns.
1. O que você vai aprender
- ❶ O que uma Series realmente é (ndarray + Index)
- ❷ O sistema de rótulos do Index e como localizar valores
- ❸ Múltiplas maneiras de criar uma Series
- ❹ Operações vetorizadas em uma Series
- ❺ Métodos comuns (head / tail / describe / value_counts)
2. Diário de Vendas da Cafeteria da Alice
(1) O Problema: Números Sem Nomes
Alice administra uma cafeteria. Ela costumava usar NumPy para registrar suas vendas diárias durante uma semana:
import numpy as np
sales = np.array([320, 280, 350, 410, 390, 520, 480])
# Qual dia é 520? Posição 5... mas qual dia?
print(sales[5]) # 520 — mas o que esse número significa?
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
O 520 é sexta-feira ou sábado? sales[5] não informa. Você tem que manter uma tabela de consulta separada "posição → dia da semana".
(2) A Solução: Series Faz os Dados Autoexplicativos
▶ Exemplo: Vendas Rotuladas com Series (Dificuldade ⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
sales = pd.Series(
[320, 280, 350, 410, 390, 520, 480],
index=['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'],
name='daily_sales'
)
print(sales)
# Mon 320
# Tue 280
# Wed 350
# Thu 410
# Fri 390
# Sat 520
# Sun 480
# Name: daily_sales, dtype: int64
print(sales['Sat']) # 520 — acesso baseado em rótulo
print(sales.iloc[5]) # 520 — acesso baseado em posição
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
Uma Series vincula dados e rótulos — sales['Sat'] é muito mais autoexplicativo do que sales[5].
(3) O Benefício: O Índice é a Etiqueta de Identificação dos Dados
Com rótulos de Índice, os dados se tornam autoexplicativos:
- Acesso baseado em rótulo:
s['Mon']é mais claro do ques[0] - Operações alinhadas: duas Series se alinham automaticamente por rótulo quando combinadas
- Semântica rica: um Índice pode ser datas, strings ou até mesmo rótulos multinível
3. A Estrutura Interna de uma Series
(1) Dois Componentes: values + index
graph LR
A[Series] --> B[values: NumPy ndarray]
A --> C[index: Index object]
B --> D[320, 280, 350, ...]
C --> E["Mon, Tue, Wed, ..."]
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
| Propriedade | Tipo | Descrição |
|---|---|---|
s.values |
np.ndarray | O array de dados subjacente |
s.index |
pd.Index | Os rótulos das linhas |
s.name |
str | O nome da Series |
s.dtype |
np.dtype | O tipo de dado dos elementos |
s.shape |
tuple | A forma (unidimensional, ex: (7,)) |
s.size |
int | O número de elementos |
▶ Exemplo: Inspecionando Propriedades da Series (Dificuldade ⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
import numpy as np
s = pd.Series([320, 280, 350], index=['Mon', 'Tue', 'Wed'])
print(f"Type of values: {type(s.values)}") # <class 'numpy.ndarray'>
print(f"Type of index: {type(s.index)}") # <class 'pandas.core.indexes.base.Index'>
print(f"dtype: {s.dtype}") # int64
print(f"shape: {s.shape}") # (3,)
print(f"size: {s.size}") # 3
print(f"name: {s.name}") # None
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
(2) Comparação: Series vs ndarray
| Característica | NumPy ndarray | Pandas Series |
|---|---|---|
| Rótulos | Nenhuma (somente posição) | Sim (Index) |
| Tipos mistos | Não suportado | Não recomendado, mas possível (objeto) |
| Valores ausentes | np.nan (somente float) | NaN / pd.NA (cobertura completa) |
| Alinhamento de operações | Por posição | Por rótulo |
| Nome | Nenhuma | Propriedade name |
| Estatísticas comuns | np.mean etc. | Encadeamento de métodos como .mean() |
| Por baixo dos panos | ndarray | ndarray + Index |
.values, ela se degrada em um ndarray simples.
4. Múltiplas Maneiras de Criar uma Series
(1) A Partir de uma Lista
▶ Exemplo: Criando uma Series a Partir de uma Lista (Dificuldade ⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
# Índice padrão: 0, 1, 2, ...
s1 = pd.Series([10, 20, 30, 40])
print(s1)
# 0 10
# 1 20
# 2 30
# 3 40
# Índice personalizado
s2 = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(s2['b']) # 20
# Com nome
s3 = pd.Series([10, 20, 30], name='scores')
print(s3.name) # scores
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
(2) A Partir de um Dicionário
▶ Exemplo: Criando uma Series a Partir de um Dicionário (Dificuldade ⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
# As chaves se tornam o índice, os valores se tornam os dados
population = pd.Series({
'Tokyo': 13960000,
'New York': 8336000,
'London': 8982000,
'Paris': 2161000
})
print(population)
# Tokyo 13960000
# New York 8336000
# London 8982000
# Paris 2161000
print(population['London']) # 8982000
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
A vantagem de criar a partir de um dicionário: as chaves se tornam automaticamente o Índice, sem necessidade de especificá-lo manualmente.
(3) A Partir de um NumPy ndarray
▶ Exemplo: Criando uma Series a Partir de um ndarray (Dificuldade ⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import numpy as np
import pandas as pd
arr = np.array([3.14, 2.72, 1.41, 1.73])
s = pd.Series(arr, index=['pi', 'e', 'sqrt2', 'sqrt3'])
print(s)
# pi 3.14
# e 2.72
# sqrt2 1.41
# sqrt3 1.73
print(f"Underlying type: {type(s.values)}") # numpy.ndarray
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
(4) A Partir de um Escalar (Broadcasting)
▶ Exemplo: Criando uma Series por Broadcasting de um Escalar (Dificuldade ⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
# Broadcast do escalar para preencher todas as posições do índice
s = pd.Series(0, index=['A', 'B', 'C', 'D'])
print(s)
# A 0
# B 0
# C 0
# D 0
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
(5) Comparação dos Métodos de Criação
| Método | Sintaxe | Fonte do Índice | Caso de Uso |
|---|---|---|---|
| Lista | pd.Series([1,2,3]) |
RangeIndex padrão | Testes rápidos |
| Lista + índice | pd.Series([1,2,3], index=...) |
Especificado manualmente | Quando você precisa de rótulos personalizados |
| Dicionário | pd.Series({'a':1, 'b':2}) |
Chaves do dicionário | Pares de rótulo-valor |
| ndarray | pd.Series(np.array(...)) |
Padrão ou especificado | Convertendo dados NumPy |
| Escalar | pd.Series(0, index=...) |
Especificado manualmente | Inicialização / preenchimento |
5. Acessando uma Série
(1) Acesso por Rótulo vs Acesso por Posição
▶ Exemplo: Duas Formas de Acessar (Dificuldade ⭐⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale-o localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
s = pd.Series([320, 280, 350, 410],
index=['Mon', 'Tue', 'Wed', 'Thu'])
# Acesso baseado em rótulo (preferido)
print(s['Tue']) # 280
print(s.loc['Tue']) # 280 — acesso explícito por rótulo
# Acesso baseado em posição
print(s.iloc[1]) # 280 — acesso explícito por posição
# Fatiamento por rótulo (INCLUI o ponto final)
print(s['Mon':'Wed'])
# Mon 320
# Tue 280
# Wed 350
# Fatiamento por posição (EXCLUI o ponto final, como no Python)
print(s.iloc[0:3])
# Mon 320
# Tue 280
# Wed 350
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale-o localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
'Mon':'Wed' inclui Wed), enquanto o fatiamento por posição exclui o ponto final (iloc[0:3] não inclui a posição 3). Este é o ponto de confusão mais comum para iniciantes em Pandas.
(2) Comparação dos Métodos de Acesso
| Método | Sintaxe | Ponto Final | Recomendado Para |
|---|---|---|---|
s[rotulo] |
Atalho | — | Um único rótulo |
s.loc[rotulo] |
Rótulo explícito | Inclui o ponto final | Tornar a intenção clara |
s.iloc[pos] |
Posição explícita | Exclui o ponto final | Indexar por posição |
s[[r1,r2]] |
Seleção por lista | — | Múltiplos rótulos |
6. Operações em uma Series
(1) Operações Vetorizadas
▶ Exemplo: Operações Vetorizadas em uma Series (Dificuldade ⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
sales = pd.Series([320, 280, 350, 410],
index=['Mon', 'Tue', 'Wed', 'Thu'])
# Arithmetic operations
print(sales * 1.1) # 10% price increase
# Mon 352.0
# Tue 308.0
# Wed 385.0
# Thu 451.0
# Comparison operations
print(sales > 300)
# Mon True
# Tue False
# Wed True
# Thu True
# Filter with boolean
print(sales[sales > 300])
# Mon 320
# Wed 350
# Thu 410
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
(2) Operações Alinhadas por Índice
Esta é uma das características mais importantes de uma Series: as operações alinham pelo Índice, não pela posição.
▶ Exemplo: Operações Alinhadas por Índice (Dificuldade ⭐⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
week1 = pd.Series({'Mon': 320, 'Tue': 280, 'Wed': 350})
week2 = pd.Series({'Tue': 310, 'Wed': 370, 'Thu': 400})
# Auto-align by index, non-matching → NaN
total = week1 + week2
print(total)
# Mon NaN # only in week1
# Tue 590.0 # 280 + 310
# Wed 720.0 # 350 + 370
# Thu NaN # only in week2
# Fill missing with 0 instead of NaN
total_filled = week1.add(week2, fill_value=0)
print(total_filled)
# Mon 320.0
# Tue 590.0
# Wed 720.0
# Thu 400.0
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
.add(fill_value=0) podem substituir o operador + para especificar uma estratégia de preenchimento para valores ausentes.
7. Métodos Comuns de Series
(1) Estatísticas e Descrição
| Método | Descrição | Equivalente NumPy |
|---|---|---|
s.mean() |
Média | np.mean(arr) |
s.median() |
Mediana | np.median(arr) |
s.std() |
Desvio padrão | np.std(arr) |
s.min() / s.max() |
Mínimo / máximo | np.min() / np.max() |
s.sum() |
Soma | np.sum(arr) |
s.describe() |
Resumo estatístico | Nenhum |
s.value_counts() |
Contagens de frequência | Nenhum |
s.unique() |
Valores únicos | np.unique(arr) |
▶ Exemplo: Métodos Estatísticos (Dificuldade ⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado — instale-o localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
scores = pd.Series([85, 92, 78, 95, 88, 92, 78, 85, 90, 92],
name='exam_score')
print(scores.describe())
# count 10.000000
# mean 87.500000
# std 5.976143
# min 78.000000
# 25% 85.000000
# 50% 89.000000
# 75% 92.000000
# max 95.000000
print(scores.value_counts())
# 92 3
# 85 2
# 78 2
# 95 1
# 90 1
# 88 1
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado — instale-o localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
(2) Inspecionando e Filtrando
▶ Exemplo: head / tail / isin (Dificuldade ⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado — instale-o localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
s = pd.Series(range(1, 101)) # 1 a 100
print(s.head()) # primeiros 5
print(s.tail(3)) # últimos 3
# isin: teste de pertencimento
fruits = pd.Series(['apple', 'banana', 'cherry', 'apple', 'date'])
print(fruits.isin(['apple', 'cherry']))
# 0 True
# 1 False
# 2 True
# 3 True
# 4 False
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado — instale-o localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
(3) Tratando NaN
▶ Exemplo: Métodos para Tratar NaN (Dificuldade ⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado — instale-o localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
import numpy as np
s = pd.Series([10, np.nan, 30, np.nan, 50])
print(s.isna()) # detectar NaN
# 0 False
# 1 True
# 2 False
# 3 True
# 4 False
print(s.notna()) # detectar não-NaN
print(s.dropna()) # remover NaN: [10.0, 30.0, 50.0]
print(s.fillna(0)) # preencher NaN com 0
print(s.fillna(s.mean())) # preencher com valor médio
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem o pandas pré-instalado — instale-o localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
8. Exemplo Completo: Análise de Vendas Semanais de uma Cafeteria
▶ Exemplo: Análise de Vendas de Cafeteria de Ponta a Ponta (Dificuldade ⭐⭐⭐)
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
import pandas as pd
import numpy as np
# ============================================
# Exemplo abrangente: Análise de vendas
# semanais de cafeteria usando Series
# ============================================
# 1. Criar dados de vendas com rótulos de dias
vendas = pd.Series({
'Seg': 320, 'Ter': 280, 'Qua': 350,
'Qui': 410, 'Sex': 390, 'Sab': 520, 'Dom': 480
}, name='vendas_diarias_USD')
# 2. Estatísticas básicas
print("=== Relatório de Vendas Semanais ===")
print(f"Total: R${vendas.sum():,.0f}")
print(f"Média diária: R${vendas.mean():.0f}")
print(f"Melhor dia: {vendas.idxmax()} (R${vendas.max():,.0f})")
print(f"Pior dia: {vendas.idxmin()} (R${vendas.min():,.0f})")
print(f"Desv pad: R${vendas.std():.0f}")
# 3. Análise dia útil vs fim de semana
media_dia_util = vendas[['Seg','Ter','Qua','Qui','Sex']].mean()
media_fim_semana = vendas[['Sab','Dom']].mean()
print(f"\nMédia dias úteis: R${media_dia_util:.0f}")
print(f"Média fim de semana: R${media_fim_semana:.0f}")
print(f"Aumento no fim de semana: {(media_fim_semana/media_dia_util - 1)*100:.1f}%")
# 4. Mudança diária
mudanca = vendas.pct_change() * 100
print(f"\nMaior queda diária: {mudanca.min():.1f}% em {mudanca.idxmin()}")
print(f"Maior aumento diário: {mudanca.max():.1f}% em {mudanca.idxmax()}")
# 5. Vendas acumuladas
vendas_acum = vendas.cumsum()
print(f"\nMeta de vendas R$2.000 atingida em: {vendas_acum[vendas_acum >= 2000].index[0]}")
# 6. Ranking
print(f"\nRanking de vendas:\n{vendas.rank(ascending=False).astype(int)}")
Execute isso em um ambiente Python local (pandas 2.x). O servidor Piston não tem pandas pré-instalado — instale localmente (`pip install pandas`) para acompanhar. Os valores reais podem variar ligeiramente dependendo da sua versão do pandas.
Saída esperada (trecho):
=== Relatório de Vendas Semanais ===
Total: R$2,750
Média diária: R$393
Melhor dia: Sab (R$520)
Pior dia: Ter (R$280)
Desv pad: R$82
Média dias úteis: R$350
Média fim de semana: R$500
Aumento no fim de semana: 42.9%
Maior queda diária: -12.5% em Ter
Maior aumento diário: 33.3% em Sab
❓ Perguntas Frequentes
P: Qual é a diferença entre uma Series e um ndarray? R: Series = ndarray + Índice + nome. Os valores subjacentes de uma Series são um ndarray, mas com um índice de rótulos e um nome adicionados. Durante as operações, uma Series se alinha pelo Índice, enquanto um ndarray se alinha pela posição. Quando você não precisa de rótulos, basta usar
.valuespara extrair o ndarray.
P: Um Índice pode ter valores duplicados? R: Sim. O Pandas permite valores de Índice duplicados, mas isso prejudica o desempenho, e acessar um rótulo duplicado retorna múltiplos valores (uma Series em vez de um escalar). É melhor manter o Índice único sempre que possível — verifique com
s.index.is_unique.
P: Como o NaN é tratado durante as operações? R: Por padrão, o NaN se propaga — qualquer operação envolvendo NaN produz NaN. Métodos como
s.mean(skipna=True)automaticamente ignoram o NaN (o comportamento padrão).s.dropna()remove valores ausentes, es.fillna()os preenche.
P: Qual é a diferença entre value_counts e unique? R:
unique()retorna o array deduplicado (sem contagens), enquantovalue_counts()retorna a frequência de cada valor (ordenado em ordem decrescente). Use value_counts para frequências, e unique quando você só precisa da lista distinta.
P: Uma Series pode conter diferentes tipos? R: Tecnicamente sim (dtype=objeto), mas não é recomendado. Uma Series de tipo misto perde operações vetorizadas e sofre grande perda de desempenho. Quando você precisar de tipos mistos, use um DataFrame em vez disso — cada coluna tem seu próprio tipo.
P: O que devo usar, loc ou iloc? R: Use loc para acesso baseado em rótulos e iloc para acesso baseado em posição. É melhor declarar sua intenção explicitamente com loc/iloc e evitar a ambiguidade de
s[...](que pode ser tanto um rótulo quanto uma posição).
P: Qual é a diferença entre s[label] e s.loc[label]? R: Para uma Series, eles têm o mesmo efeito. Mas
s[...]é ambíguo — pode ser um rótulo ou uma posição (quando o Índice é baseado em inteiros).s.loc[label]significa explicitamente por rótulo, es.iloc[pos]significa explicitamente por posição, portanto a forma explícita é recomendada.
📖 Resumo
- Uma Series é basicamente ndarray + Index + name; os valores subjacentes são um array NumPy
- O Index torna os dados autoexplicativos e suporta acesso baseado em rótulos (loc) e acesso baseado em posição (iloc)
- Métodos de criação: lista / dicionário / ndarray / broadcasting de escalar — criar a partir de um dicionário é o mais natural
- Operações em Series são alinhadas automaticamente pelo Index; rótulos não correspondentes produzem NaN
- Fatiamento por rótulo inclui o ponto final (
'Mon':'Wed'inclui Wed); fatiamento por posição exclui o ponto final (iloc[0:3]exclui 3) - Métodos comuns: describe() / value_counts() / head() / tail() / isna() / fillna() / dropna()
- Uma Series é adequada para dados unidimensionais; use um DataFrame para dados tabulares bidimensionais
📝 Exercícios
- Básico (Dificuldade ⭐): Crie uma Series de 3 maneiras (lista + índice / dicionário / ndarray) e imprima as propriedades
indexevaluespara cada uma. - Intermediário (Dificuldade ⭐⭐): Crie duas Series cujos valores de Index não correspondam totalmente (por exemplo, vendas mensais), some-as com
add(fill_value=0)e compare o resultado com o uso do operador+diretamente. - Desafio (Dificuldade ⭐⭐⭐): Use uma Series para simular os dados de vendas mensais de um produto (12 meses), então: calcule as vendas acumuladas → encontre o mês em que o total acumulado ultrapassa 50.000 → compute a taxa de crescimento mês a mês → identifique os meses com a maior e menor taxa de crescimento.
← Previous: Getting Started with Pandas · Next: DataFrame Core →