Desafio 1: Vendas semestrais com Destaques (Ex: São Paulo)
import pandas as pd
import matplotlib.pyplot as plt
1. Preparação
df = pd.read_csv('relatorio_vendas.csv')
df['data_pedido'] = pd.to_datetime(df['data_pedido'])
df.set_index('data_pedido', inplace=True)
2. Filtragem e Agrupamento (Exemplo: São Paulo)
vendas_sp = df.query('estado == "São Paulo"')['vendas'].resample('2Q', closed='left').sum()
3. Identificação de Máximos e Mínimos
max_venda = vendas_sp.max()
min_venda = vendas_sp.min()
data_max = vendas_sp.idxmax()
data_min = vendas_sp.idxmin()
4. Gráfico
fig, ax = plt.subplots(figsize=(12, 5))
vendas_sp.plot(marker='o', color='#0077b6', ax=ax)
Adicionando anotações de destaque
ax.annotate(f'Máximo: R${max_venda:,.2f}', xy=(data_max, max_venda), xytext=(10, 10),
textcoords='offset points', arrowprops=dict(arrowstyle='->', color='green'))
ax.annotate(f'Mínimo: R${min_venda:,.2f}', xy=(data_min, min_venda), xytext=(10, -20),
textcoords='offset points', arrowprops=dict(arrowstyle='->', color='red'))
ax.set_title('Evolução Semestral de Vendas em São Paulo', loc='left', fontsize=14)
ax.set_ylabel('Vendas (R$)')
ax.set_xlabel(None)
plt.grid(axis='y', linestyle='--', alpha=0.7)
plt.show()
Desafio 2: Lucros Anuais no Nordeste (Interativo)
import plotly.express as px
1. Preparação dos dados para o Nordeste
df_nordeste = df.query('regiao == "Nordeste"').copy()
df_nordeste['ano'] = df_nordeste.index.year
2. Agrupamento por Estado e Ano
lucro_ne = df_nordeste.groupby(['estado', 'ano'])['lucro'].sum().reset_index()
3. Criação do Gráfico Interativo
fig = px.line(lucro_ne, x='ano', y='lucro', color='estado', markers=True,
title='Comparativo de Lucro Anual por Estado (Região Nordeste)',
labels={'ano': 'Ano', 'lucro': 'Lucro (R$)', 'estado': 'Estado'})
4. Ajuste de Layout
fig.update_layout(width=1000, height=500, plot_bgcolor='white', hovermode='x unified')
fig.show()