logo

Tabela Python

Uma introdução

Geralmente, não é necessário que os dados que utilizamos estejam disponíveis em formato CSV ou JSON. Os dados podem ser armazenados na forma de uma tabela em um arquivo PDF. No caso mais simples, podemos copiar e colar a tabela em uma planilha ou editor de texto. Mas também pode ser que possamos ter mais de uma tabela no mesmo PDF que tenha estruturas semelhantes. Para tais casos, temos que copiar e colar cada uma dessas tabelas separadamente, o que torna o trabalho tedioso.

No entanto, para eliminar esse trabalho enfadonho, Python fornece uma biblioteca de código aberto, também conhecida como mesa-py , que permite aos usuários extrair mais de uma tabela distintamente. No tutorial a seguir, aprenderemos sobre tabula e suas funções.

O que é Tabula?

Tabular é um wrapper básico de tabula-java que permite aos usuários extrair a tabela e converter o arquivo PDF diretamente em Data frames ou JSON usando Linguagem de programação Python . O usuário também pode extrair tabelas de PDF e convertê-las em arquivos nos formatos TSV, CSV ou JSON.

Tabula é uma ferramenta baseada em um aplicativo de interface gráfica de usuário (GUI); no entanto, tabela-java é uma ferramenta baseada na interface de usuário de linha de comando (CUI). tabula-java fornece as ligações de Ruby, R e NodeJS, mas não para Python. Assim, os desenvolvedores introduziram o conceito de mesa-py que fornece ligação Python.

Agora vamos entender quem usa o Tabula e como podemos instalá-lo.

Quem utiliza Tabula?

Tabula é uma ferramenta poderosa que está sendo usada por organizações de notícias de todos os tamanhos para potencializar reportagens investigativas. Esses Organizações de notícias são The Times of London, ProPublica, Foreign Policy, The New York Times, La Nacion (Argentina) e St.

Existem organizações de base, como a SchoolCuts.org, que também dependem do Tabula para converter documentos desajeitados em recursos públicos amigáveis.

java substitui tudo

Além do acima exposto, existem pesquisadores de outras áreas que utilizam Tabula para transformar seus relatórios PDF em planilhas Excel, CSVs e arquivos nos formatos JSON e o utilizam para fins de análise e aplicações de banco de dados.

Implementação de Tabula em Python

Depois de discutir um pouco sobre Tabula, vamos entender sua implementação em Python.

Instalação da biblioteca

Desde mesa-py é uma biblioteca de código aberto de Python, usaremos o pip instalador para instalar a biblioteca.

 $ pip install tabula-py 

Importação da biblioteca

Assim que a instalação for concluída, podemos verificá-la simplesmente importando a biblioteca conforme mostrado abaixo:

 import tabula 

Caso o programa retorne um erro de importação , é recomendado reinstalar o pacote.

O mesa-py A biblioteca oferece várias funções, como leitura de um arquivo PDF, leitura de uma tabela em uma página específica de um arquivo PDF, leitura de várias tabelas na mesma página de um arquivo PDF ou conversão de arquivos PDF diretamente em um arquivo CSV.

Vamos começar lendo um arquivo PDF

Lendo um arquivo PDF

O mesa-py biblioteca permite que seus usuários leiam um arquivo PDF usando a função conhecida como ler_pdf() função.

Sintaxe:

 obj = tabula.read_pdf(filename, args[]) 

Parâmetros:

nome do arquivo: O nome do arquivo parâmetro é o nome do arquivo pdf; gostaríamos de ler os dados.

Vamos converter a seguinte tabela de dados PDF em Data Frame do pandas.

Nome do arquivo: marksheet_table.py

Página 1

Nome Inglês Física Química Biologia Total
A 86 54 65 83 288
B 56 Quatro cinco 80 55 236
C 3. 4 66 73 90 263
D 77 75 46 3. 4 232
E 74 82 55 77 288
F 69 76 82 46 273
G 53 33 29 Quatro cinco 160
H 70 41 67 23 201
EU 80 43 88 28 239
J. 90 37 Quatro cinco 71 243
K 98 55 88 81 322
eu 90 54 67 37 248
M 87 76 88 54 305
N 86 69 82 66 303
O 67 74 54 65 260
P 75 96 53 67 291
P Quatro cinco 87 80 Quatro cinco 257
R 44 66 49 78 237
S 78 39 78 80 275
T 56 54 76 86 273
EM 43 90 64 77 274
EM 95 88 66 55 304
EM 64 67 86 80 297
X 82 56 Quatro cinco 65 248
E 79 65 70 54 268
COM 83 54 40 75 252

Aqui está um exemplo abaixo, que demonstra como extrair os dados do pdf.

Exemplo:

 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 1) # printing the table print(mytable[0]) 

Saída:

 Name English Physics Chemistry Biology Total 0 A 86 54 65 83 288 1 B 56 45 80 55 236 2 C 34 66 73 90 263 3 D 77 75 46 34 232 4 E 74 82 55 77 288 5 F 69 76 82 46 273 6 G 53 33 29 45 160 7 H 70 41 67 23 201 8 I 80 43 88 28 239 9 J 90 37 45 71 243 10 K 98 55 88 81 322 11 L 90 54 67 37 248 12 M 87 76 88 54 305 13 N 86 69 82 66 303 14 O 67 74 54 65 260 15 P 75 96 53 67 291 16 Q 45 87 80 45 257 17 R 44 66 49 78 237 18 S 78 39 78 80 275 19 T 56 54 77 86 273 20 U 43 90 64 77 274 21 V 95 88 66 55 304 22 W 64 67 86 80 297 23 X 82 56 45 65 248 24 Y 79 65 70 54 268 25 Z 83 54 40 75 252 

Explicação:

No exemplo acima, importamos a biblioteca necessária e definimos uma variável que armazena o endereço do arquivo de dados PDF. Usamos então o ler_pdf() função para ler os dados do pdf e imprimi-los para os usuários. Como resultado, a tabela de dados foi lida com sucesso.

Observação: usamos o Páginas parâmetro na função read_pdf() para ler os dados da(s) página(s) especificada(s).

Vamos considerar outro exemplo para imprimir as tabelas de uma página específica, digamos a página número 2.

Exemplo:

 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 2) # printing the table print(mytable[0]) 

Saída:

 Name Final Scores 0 A 288 1 B 236 2 C 263 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 16 Q 257 17 R 237 18 S 275 19 T 273 20 U 274 21 V 304 22 W 297 23 X 248 24 Y 268 25 Z 252 

Explicação:

No exemplo acima, seguimos o mesmo procedimento que fizemos anteriormente. No entanto, atribuímos o Páginas parâmetro para 2 e imprimiu a primeira tabela da página especificada. Como resultado, a tabela de índice zero na página 2 foi impressa com sucesso.

Agora vamos entender o que acontece quando há mais de uma tabela na mesma página de um arquivo de dados PDF.

java obtém a hora atual

Manipulação de múltiplas tabelas na mesma página de um arquivo PDF

Podemos lidar com mais de uma tabela na mesma usando um parâmetro adicional conhecido como tabelas_múltiplas. O tabelas_múltiplas parâmetro assume um valor booleano para o qual o ler_pdf() A função lê várias tabelas como tabelas independentes se for verdadeira ou lê várias tabelas como uma única tabela se for falsa.

Consideremos o exemplo a seguir que demonstra como ler várias tabelas como tabelas independentes.

Exemplo:

classe de objeto em java
 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 2, multiple_tables = True) # printing the table print(mytable[0]) print(mytable[1]) 

Saída:

 Name Final Scores 0 A 288 1 B 236 2 C 263 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 16 Q 257 17 R 237 18 S 275 19 T 273 20 U 274 21 V 304 22 W 297 23 X 248 24 Y 268 25 Z 252 Name Position 0 K I 1 M II 2 V III 3 N IV 4 W V 

Explicação:

No exemplo a seguir, importamos novamente a biblioteca necessária e definimos a variável que armazena o endereço do arquivo PDF. Usamos então o ler_pdf() função e incluiu o tabelas_múltiplas parâmetro configurando-o para Verdadeiro . Em seguida, imprimimos as múltiplas tabelas presentes na página 2 do arquivo PDF separadamente.

Agora, vamos considerar um exemplo para entender como ler várias tabelas como uma única tabela.

Exemplo:

 # importing the library import tabula # address of the file myfile = 'marksheet_table.pdf' # using the read_pdf() function mytable = tabula.read_pdf(myfile, pages = 2, multiple_tables = False) # printing the table print(mytable[0]) 

Saída:

 Name Final Scores 0 A 288 1 B 236 2 C 263 3 D 232 4 E 288 5 F 273 6 G 160 7 H 201 8 I 239 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 9 J 243 10 K 322 11 L 248 12 M 305 13 N 303 14 O 260 15 P 291 16 Q 257 17 R 237 18 S 275 19 T 273 20 U 274 21 V 304 22 W 297 23 X 248 24 Y 268 25 Z 252 26 Name Position 27 K I 28 M II 29 V III 30 N IV 31 W V 

Explicação:

No exemplo a seguir, definimos agora o tabelas_múltiplas parâmetro para Falso . Como resultado, as tabelas presentes na página 2 são tratadas como uma única tabela.

Convertendo arquivo PDF diretamente em um arquivo CSV

Podemos converter um arquivo PDF que contém dados tabulares diretamente em um arquivo CSV com a ajuda do converter em() método no tabula biblioteca.

Sintaxe:

 tabula.convert_into('filename.pdf', 'newfilename.csv', args[]) 

Consideremos o exemplo a seguir que ilustra a conversão do arquivo PDF em arquivo CSV.

Exemplo:

 # importing the library import tabula # address of the file myfile = 'marksheettable.pdf' # using the read_pdf() function tabula.convert_into(myfile, 'marksheet.csv') print('The PDF file has been converted successfully.') 

Saída:

 'pages' argument isn't specified.Will extract only from page 1 by default. The PDF file has been converted successfully. 

Explicação:

No exemplo acima, importamos novamente a biblioteca necessária e definimos a variável que contém o endereço do arquivo PDF. Usamos então o converter em() método para converter o arquivo PDF em arquivo CSV e imprimiu uma mensagem de sucesso.

Além disso, também podemos observar que o programa retornou uma declaração dizendo que o 'Páginas' argumento não é especificado. Assim, a tabela presente na página 1 será extraída por padrão.