Extraindo tabelas de arquivos PDF com o R

[et_pb_section admin_label="section"][et_pb_row admin_label="row"][et_pb_column type="4_4"][et_pb_text admin_label="Texto" background_layout="light" text_orientation="justified" text_font="Verdana||||" text_font_size="18" use_border_color="off" border_color="#ffffff" border_style="solid"]

Na edição 28 do Clube do Código, abordamos um problema prático: extrair tabelas de arquivos PDF. Isso pode ser um transtorno, não é mesmo? Já pensou ter que pegar dados de uma tabela, um a um, e colocar em outro programa? Com o R, isso, claro, é feito de outra forma. Utilizamos o pacote tabulizer para essa empreitada. Por exemplo, podemos estar interessados em pegar uma tabela do Relatório Trimestral de Inflação. Assim, começamos o nosso código, como abaixo.

library(tabulizer)
url = 'http://www.bcb.gov.br/htms/relinf/port/2017/03/ri201703c2p.pdf'
out = extract_tables(url)

Com três linhas de código, nós extraimos as tabelas do arquivo PDF. Agora, basta limpar um pouco os dados e utilizar a função stargazer para colocar essa tabela abaixo.

[/et_pb_text][/et_pb_column][/et_pb_row][et_pb_row admin_label="row"][et_pb_column type="1_3"][/et_pb_column][et_pb_column type="1_3"][et_pb_code admin_label="Código"]<center> <table style="text-align:center"><caption><strong>Projeção da inflação no cenário com taxas de juros e câmbio da pesquisa Focus</strong></caption> <tr><td colspan="8" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">Trimestre</td><td>50% Lower</td><td>30% Lower</td><td>10% Lower</td><td>Central</td><td>10% Upper</td><td>30% Upper</td><td>50% Upper</td></tr> <tr><td colspan="8" style="border-bottom: 1px solid black"></td></tr><tr><td style="text-align:left">2017 1</td><td>4,6</td><td>4,6</td><td>4,6</td><td>4,6</td><td>4,6</td><td>4,6</td><td>4,6</td></tr> <tr><td style="text-align:left">2017 2</td><td>3,5</td><td>3,7</td><td>3,8</td><td>3,9</td><td>4,0</td><td>4,1</td><td>4,3</td></tr> <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td style="text-align:left">2017 3</td><td>2,8</td><td>3,1</td><td>3,3</td><td>3,4</td><td>3,5</td><td>3,7</td><td>4,0</td></tr> <tr><td style="text-align:left"></td><td></td><td></td><td></td><td></td><td></td><td></td><td></td></tr> <tr><td style="text-align:left">2017 4</td><td>3,2</td><td>3,6</td><td>3,9</td><td>4,0</td><td>4,1</td><td>4,4</td><td>4,8</td></tr> <tr><td style="text-align:left">2018 1</td><td>3,5</td><td>3,9</td><td>4,2</td><td>4,4</td><td>4,6</td><td>4,9</td><td>5,3</td></tr> <tr><td style="text-align:left">2018 2</td><td>3,2</td><td>3,7</td><td>4,0</td><td>4,2</td><td>4,4</td><td>4,7</td><td>5,2</td></tr> <tr><td style="text-align:left">2018 3</td><td>3,2</td><td>3,7</td><td>4,0</td><td>4,2</td><td>4,4</td><td>4,7</td><td>5,2</td></tr> <tr><td style="text-align:left">2018 4</td><td>3,5</td><td>4,0</td><td>4,3</td><td>4,5</td><td>4,7</td><td>5,0</td><td>5,5</td></tr> <tr><td style="text-align:left">2019 1</td><td>3,6</td><td>4,1</td><td>4,4</td><td>4,6</td><td>4,8</td><td>5,1</td><td>5,6</td></tr> <tr><td colspan="8" style="border-bottom: 1px solid black"></td></tr><tr><td colspan="8" style="text-align:left">Fonte: Relatório de Inflação BCB - Março de 2017.</td></tr> </table> </center>[/et_pb_code][/et_pb_column][et_pb_column type="1_3"][/et_pb_column][/et_pb_row][et_pb_row admin_label="row"][et_pb_column type="4_4"][et_pb_text admin_label="Texto" background_layout="light" text_orientation="justified" text_font="Verdana||||" text_font_size="18" use_border_color="off" border_color="#ffffff" border_style="solid"]

Aqui, para colocar no Blog, estou usando um código html. Mas é possível usar LaTeX e colocar essa tabela em outro pdf, como faço na edição 28 do Clube do Código. Bacana, não? 🙂

[/et_pb_text][et_pb_button admin_label="Botão" button_url="https://analisemacro.com.br/clube-do-codigo/" url_new_window="off" button_text="Receba exercícios como esse no Clube do Código!" button_alignment="center" background_layout="light" custom_button="off" button_letter_spacing="0" button_use_icon="default" button_icon_placement="right" button_on_hover="on" button_letter_spacing_hover="0"] [/et_pb_button][/et_pb_column][/et_pb_row][/et_pb_section]

Compartilhe esse artigo

Facebook
Twitter
LinkedIn
WhatsApp
Telegram
Email
Print

Comente o que achou desse artigo

Outros artigos relacionados

Como analisar o sentimento dos textos do COPOM no Python?

Neste exercício construímos um indicador que busca quantificar o sentimento proveniente das decisões de política monetária no Brasil. Usando técnicas de mineração de texto, implementamos todas as etapas necessárias, desde web scraping e pré-processamento das atas do Comitê de Política Monetária do Banco Central (COPOM), até a criação de tokens e a classificação do sentimento implícito nos textos.

Como importar os textos do COPOM para análise de sentimentos no Python?

Os textos divulgados pelo COPOM, sejam os comunicados ou atas, são o ponto de partida para diversos tipos de análises quantitativas, como a análise de sentimentos, e qualitativas, como uma análise de cenário econômico. Neste artigo, mostramos como coletar estes textos de forma automatizada usando web scrapping e Python.

Como tratar dados no Python? Parte 5: renomeando colunas

Como dar novos nomes significativos para as colunas em uma tabela de dados usando Python? Neste tutorial mostramos os métodos de renomeação de colunas disponíveis na biblioteca pandas, que tem como vantagem sua sintaxe simples e prática.

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

Boletim AM

Receba diretamente em seu e-mail gratuitamente nossas promoções especiais e conteúdos exclusivos sobre Análise de Dados!

como podemos ajudar?

Preencha os seus dados abaixo e fale conosco no WhatsApp

Boletim AM

Preencha o formulário abaixo para receber nossos boletins semanais diretamente em seu e-mail.