logo

Tablo Python'u

Giriş

Genellikle kullandığımız verilerin CSV veya JSON formatında bulunmasına gerek yoktur. Veriler bir PDF dosyasındaki tablo biçiminde saklanabilir. En basit örnek olarak, tabloyu kopyalayıp bir e-tabloya veya metin düzenleyiciye yapıştırabiliriz. Ancak aynı PDF'de benzer yapılara sahip birden fazla tablo da oluşturabiliriz. Bu gibi durumlarda bu tabloların her birini ayrı ayrı kopyalayıp yapıştırmak zorunda kalıyoruz, bu da işi sıkıcı hale getiriyor.

Ancak bu sıkıcı işi ortadan kaldırmak için Python, açık kaynak kodlu bir kütüphane sağlar. masa-py Bu, kullanıcıların birden fazla tabloyu ayrı ayrı ayıklamasına olanak tanır. Aşağıdaki derste tabula ve işlevlerini öğreneceğiz.

Tabula nedir?

Tabular, kullanıcıların tabloyu çıkarmasına olanak tanıyan ve PDF dosyasını doğrudan Veri çerçevelerine veya JSON'a dönüştüren temel bir tabula-java sarmalayıcısıdır. Python Programlama dili . Kullanıcı ayrıca PDF'den tabloları çıkarabilir ve bunları TSV, CSV veya JSON formatındaki dosyalara dönüştürebilir.

Tabula, Grafik Kullanıcı Arayüzü (GUI) Uygulamasını temel alan bir araçtır; Yine de, tablo-java Komut Satırı Kullanıcı Arayüzünü (CUI) temel alan bir araçtır. tabula-java Ruby, R ve NodeJS bağlamalarını sağlar ancak Python için sağlamaz. Böylece geliştiriciler konseptini tanıttı. masa-py Python bağlamayı sağlayan.

Şimdi Tabula’yı kimlerin kullandığını ve nasıl kurabileceğimizi anlayalım.

işletim sistemi

Tabula'yı kimler kullanıyor?

Tabula, araştırmacı haberciliği güçlendirmek için her büyüklükteki Haber kuruluşları tarafından kullanılan güçlü bir araçtır. Bunlar Haber kuruluşları The Times of London, ProPublica, Dış Politika, The New York Times, La Nacion (Arjantin) ve St. Paul (MN) Pioneer Press'tir.

Ayrıca, hantal belgeleri insan dostu kamu kaynaklarına dönüştürmek için Tabula'ya bağlı olan SchoolCuts.org gibi Taban Kuruluşları da vardır.

Yukarıdakilerin dışında, PDF raporlarını Excel Elektronik Tablolarına, CSV'lere ve JSON formatındaki dosyalara dönüştürmek için Tabula'yı kullanan ve bunu Analiz ve Veritabanı Uygulamaları amacıyla kullanan diğer altyapılardan araştırmacılar da vardır.

Python'da Tabula'nın Uygulanması

Biraz Tabula'yı tartıştıktan sonra, onun Python'daki uygulamasını anlayalım.

Kütüphanenin kurulumu

O zamandan beri masa-py Python'un açık kaynaklı bir kütüphanesi olduğundan kullanacağız. pip Kitaplığı yüklemek için yükleyiciyi kullanın.

 $ pip install tabula-py 

Kütüphanenin içe aktarılması

Kurulum tamamlandıktan sonra, aşağıda gösterildiği gibi kütüphaneyi basitçe içe aktararak bunu doğrulayabiliriz:

 import tabula 

Programın bir döndürmesi durumunda içe aktarma hatası paketi yeniden yüklemeniz önerilir.

masa-py kitaplık, bir PDF dosyasını okumak, bir PDF dosyasının belirli bir sayfasındaki bir tabloyu okumak, bir PDF dosyasının aynı sayfasında birden fazla tabloyu okumak veya PDF dosyalarını doğrudan bir CSV dosyasına dönüştürmek gibi çeşitli işlevler sağlar.

dize boş

Bir PDF dosyasını okuyarak başlayalım

PDF dosyasını okuma

masa-py kitaplık, kullanıcılarının PDF dosyasını şu şekilde bilinen işlevi kullanarak okumasına olanak tanır: read_pdf() işlev.

Sözdizimi:

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

Parametreler:

dosya adı: dosya adı parametre pdf dosyasının adıdır; verilerini okumak istiyoruz.

Aşağıdaki pdf veri tablosunu pandas Veri Çerçevesine dönüştürelim.

Dosya Adı: marksheet_table.py

androidin paskalya yumurtası nedir

Sayfa 1

İsim İngilizce Fizik Kimya Biyoloji Toplam
A 86 54 65 83 288
B 56 Dört beş 80 55 236
C 3. 4 66 73 90 263
D 77 75 46 3. 4 232
VE 74 82 55 77 288
F 69 76 82 46 273
G 53 33 29 Dört beş 160
H 70 41 67 23 201
BEN 80 43 88 28 239
J 90 37 Dört beş 71 243
k 98 55 88 81 322
L 90 54 67 37 248
M 87 76 88 54 305
N 86 69 82 66 303
Ö 67 74 54 65 260
P 75 96 53 67 291
Q Dört beş 87 80 Dört beş 257
R 44 66 49 78 237
S 78 39 78 80 275
T 56 54 76 86 273
İÇİNDE 43 90 64 77 274
İÇİNDE 95 88 66 55 304
İÇİNDE 64 67 86 80 297
X 82 56 Dört beş 65 248
VE 79 65 70 54 268
İLE 83 54 40 75 252

Aşağıda, verilerin pdf'ten nasıl çıkarılacağını gösteren bir örnek verilmiştir.

Örnek:

 # 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]) 

Çıktı:

 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 

Açıklama:

Yukarıdaki örnekte gerekli kütüphaneyi içe aktardık ve pdf veri dosyasının adresini saklayan bir değişken tanımladık. Daha sonra şunu kullandık: read_pdf() Verileri pdf'ten okuma ve kullanıcılar için yazdırma işlevi. Sonuç olarak veri tablosu başarıyla okundu.

Not: Biz kullandık sayfalar Belirtilen sayfalardan veri okumak için read_pdf() işlevindeki parametre.

Tabloları belirli bir sayfadan, örneğin 2 numaralı sayfadan yazdırmak için başka bir örnek düşünelim.

Örnek:

 # 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]) 

Çıktı:

 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 

Açıklama:

Yukarıdaki örnekte daha önce uyguladığımız prosedürün aynısını izledik. Ancak biz görevlendirdik sayfalar parametresini 2'ye ayarlayın ve belirtilen sayfanın ilk tablosunu yazdırın. Sonuç olarak, sayfa 2'deki sıfır indeks tablosu başarıyla yazdırıldı.

Şimdi bir PDF veri dosyasının aynı sayfasında birden fazla tablo olduğunda ne olacağını anlayalım.

Bir PDF dosyasının aynı sayfasında birden fazla tabloyu işleme

olarak bilinen ek bir parametreyi kullanarak aynı tablo üzerinde birden fazla tabloyu işleyebiliriz. çoklu_tablolar. çoklu_tablolar parametresi bir Boolean değeri alır; read_pdf() işlev, doğruysa birden çok tabloyu bağımsız tablolar olarak okur veya yanlışsa birden çok tabloyu tek bir tablo olarak okur.

karakter java'ya dize

Birden çok tablonun bağımsız tablolar olarak nasıl okunacağını gösteren aşağıdaki örneği ele alalım.

Örnek:

 # 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]) 

Çıktı:

 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 

Açıklama:

Aşağıdaki örnekte gerekli kütüphaneyi tekrar içe aktardık ve PDF dosyasının adresini saklayan değişkeni tanımladık. Daha sonra şunu kullandık: read_pdf() işlevi ve şunları içeriyordu: çoklu_tablolar parametre ayarı Doğru . Daha sonra PDF dosyasının 2. sayfasında bulunan birden fazla tabloyu ayrı ayrı yazdırdık.

Şimdi birden fazla tablonun tek tablo olarak nasıl okunacağını anlamak için bir örnek ele alalım.

Örnek:

 # 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]) 

Çıktı:

 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 

Açıklama:

Aşağıdaki örnekte artık ayarladık. çoklu_tablolar parametre YANLIŞ . Sonuç olarak 2. sayfada yer alan tablolar tek bir tablo gibi ele alınır.

PDF dosyasını doğrudan CSV dosyasına dönüştürme

Tablosal veriler içeren bir PDF dosyasını, yardımıyla doğrudan bir CSV dosyasına dönüştürebiliriz. dönüştürmek() yöntemdeki tablo kütüphane.

Sözdizimi:

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

PDF dosyasının CSV dosyasına dönüştürülmesini gösteren aşağıdaki örneği ele alalım.

powershell büyüktür veya eşittir

Örnek:

 # 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.') 

Çıktı:

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

Açıklama:

Yukarıdaki örnekte gerekli kütüphaneyi tekrar içe aktardık ve PDF dosyasının adresini içeren değişkeni tanımladık. Daha sonra şunu kullandık: dönüştürmek() PDF dosyasını CSV dosyasına dönüştürme yöntemini kullanarak bir başarı mesajı yazdırdım.

Ayrıca programın şunu söyleyen bir beyanda bulunduğunu da gözlemleyebiliriz: 'sayfalar' argüman belirtilmedi. Böylece sayfa 1'de bulunan tablo varsayılan olarak çıkarılacaktır.