<jupyter_start><jupyter_text>**Produtos mais Impactados pelo Dólar** Este notebook apresenta a correlação entre a cotação do dólar e a inflação dos produtos e compõe o IPC-A, a fim de identificar quais são os produtos mais impactados pela diferença cambial<jupyter_code>from DadosAbertosBrasil import ibge, favoritos
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt<jupyter_output><empty_output><jupyter_text>1. Obter cotação do dólar<jupyter_code># Capturar câmbio
dolar = favoritos.cambio(
    moedas = 'USD',
    inicio = '2014-12-01',
    fim = '2020-01-01'
)

dolar.head(10)
# Formatar datas
dolar['mês'] = dolar.Data.dt.month
dolar['ano'] = dolar.Data.dt.year
dolar.head(10)
# Obter última cotação do mês
dolar = dolar.groupby(['ano', 'mês'], as_index=False).last() \
    .drop(columns=['ano', 'mês'])

# Obter variação percentual da cotação
dolar.USD = dolar.USD.pct_change()
dolar.dropna(inplace=True)

dolar.head(10)<jupyter_output><empty_output><jupyter_text>2. Obter índice IPCA-15 mensal<jupyter_code>ibge.lista_tabelas(
    contendo = 'IPCA15',
    index = True
)
meta = ibge.Metadados(1705)
# Períodos disponíveis
meta.periodos
# Localidades disponíveis
meta.localidades
# Variáveis disponíveis
meta.variaveis
# Aqui precisamos navegar pelo dictionaty de categorias para capturar uma lista de todas as ids
categorias = [cat['id'] for cat in meta.classificacoes[0]['categorias']]

categorias[:10]
# Tabela SIDRA
df = ibge.sidra(
    tabela = 1705,
    periodos = '201501-201912',
    variaveis = 355,
    classificacoes = {315: categorias},
    localidades = {1: 'all'}
)

df.sample(10)
series = df.pivot(
    index = 'Mês (Código)',
    columns = 'Geral, grupo, subgrupo, item e subitem',
    values = 'Valor'
).astype(float)

series.head(10)<jupyter_output><empty_output><jupyter_text>3. Formatar DataFrame de câmbio para que colunas coincidam<jupyter_code>dolar.Data = dolar.Data.dt.strftime('%Y%m')
dolar.set_index('Data', inplace=True)

dolar.head(10)<jupyter_output><empty_output><jupyter_text>4. Correlação<jupyter_code>corr = [[col, np.corrcoef(x=dolar.USD, y=series[col])[0,1]] \
    for col in series.columns]

corr = pd.DataFrame(corr, columns=['Itens', 'Correlação'])

corr.sample(10)
# Maior correlação positiva com dólar
corr.sort_values('Correlação', ascending=False).head(10)
# Maior correlação negativa com dólar
corr.sort_values('Correlação', ascending=True).head(10)<jupyter_output><empty_output><jupyter_text>5. Plottar os dois itens mais correlacionados<jupyter_code>fig, axs = plt.subplots(2, 1, figsize=(10,15))

# Boate
ax1 = plt.subplot(211)
plt.scatter(dolar.USD, series['7201054.Boate e danceteria'])
plt.ylabel('IPCA mensal de boates e danceterias')

# Manteiga
ax2 = plt.subplot(212, sharex=ax1)
plt.scatter(dolar.USD, series['1111031.Manteiga'])
plt.ylabel('IPCA mensal de Manteiga')

plt.show()<jupyter_output><empty_output>
{'fraction_non_alphanumeric': 0.12975778546712802, 'fraction_numerical': 0.035986159169550176, 'mean_word_length': 5.738927738927739, 'pattern_counts': {'":': 0, '<': 25, '<?xml version=': 0, '>': 25, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '460215', 'license': 'MIT', 'n_tokens_mistral': 1244, 'n_tokens_neox': 1161, 'n_words': 242, 'path': 'Exemplos/Produtos mais Impactados pelo Dólar.ipynb', 'repo_name': 'GusFurtado/DadosAbertosBrasil', 'size': '2890'}