Cách lấy dữ liệu từ bảng trong python

Bạn muốn xuất bảng từ file PDF bằng ngôn ngữ lập trình Python?

Camelot là một thư viện Python và một công cụ dòng lệnh giúp mọi người dễ dàng trích xuất các bảng dữ liệu bị mắc kẹt trong các tệp PDF. Kiểm tra tài liệu chính thức và kho lưu trữ GitHub của họ

Trong khi Tabula-py là một trình bao bọc Python đơn giản của tabula-java, có thể đọc các bảng trong PDF. Nó cho phép bạn chuyển đổi tệp PDF thành CSV, TSV, JSON hoặc thậm chí là DataFrame của gấu trúc

Ngoài việc trích xuất các bảng từ tệp PDF, bạn cũng có thể muốn tìm hiểu cách mã hóa và giải mã tệp PDF bằng Python. Hoặc có lẽ bạn cần hợp nhất các tệp PDF bằng Python. Một tác vụ hữu ích khác là trích xuất tất cả các liên kết từ tệp PDF bằng Python. Và nếu bạn cần chuyển đổi các tệp PDF của mình sang định dạng khác, bạn có thể sử dụng Python để chuyển đổi PDF sang Docx. Bạn có thể kiểm tra tất cả các hướng dẫn PDF tại đây

Trong hướng dẫn này, bạn sẽ tìm hiểu cách trích xuất các bảng trong PDF bằng cách sử dụng cả thư viện camelot và tabula-py trong Python

Có liên quan. Cách trích xuất hình ảnh từ PDF bằng Python

Trước tiên, bạn cần cài đặt các phụ thuộc cần thiết để thư viện camelot hoạt động bình thường, sau đó bạn có thể cài đặt các thư viện bằng dòng lệnh

pip3 install camelot-py[cv] tabula-py

Lưu ý rằng bạn cần đảm bảo rằng bạn đã cài đặt đúng Tkinter và ghostscript [là các phần phụ thuộc cần thiết cho camelot] trên máy tính của bạn

Trích xuất các bảng PDF bằng Camelot

Bây giờ bạn đã cài đặt tất cả các yêu cầu cho hướng dẫn này, hãy mở một tệp Python mới và làm theo

import camelot

# PDF file to extract tables from
file = "foo.pdf"

Tôi có một tệp PDF trong thư mục hiện tại có tên là "foo. pdf" [lấy tại đây] là một trang PDF bình thường chứa một bảng được hiển thị trong hình ảnh sau

Chỉ là một bảng ngẫu nhiên. Hãy giải nén nó bằng Python

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]

hàm read_pdf[] trích xuất tất cả các bảng trong tệp PDF. Hãy in số lượng bảng được trích xuất

# number of tables extracted
print["Total tables extracted:", tables.n]

kết quả này

Total tables extracted: 1 

Chắc chắn rồi, nó chỉ chứa một bảng, in bảng này dưới dạng Khung dữ liệu Pandas

# print the first table as Pandas DataFrame
print[tables[0].df]

đầu ra

              0            1                2                     3                  4                  5                 6
0  Cycle \nName  KI \n[1/km]  Distance \n[mi]  Percent Fuel Savings
1                                                  Improved \nSpeed  Decreased \nAccel  Eliminate \nStops  Decreased \nIdle
2        2012_2         3.30              1.3                  5.9%               9.5%              29.2%             17.4%
3        2145_1         0.68             11.2                  2.4%               0.1%               9.5%              2.7%
4        4234_1         0.59             58.7                  8.5%               1.3%               8.5%              3.3%
5        2032_2         0.17             57.8                 21.7%               0.3%               2.7%              1.2%
6        4171_1         0.07            173.9                 58.1%               1.6%               2.1%              0.5%

đó là chính xác. Hãy xuất bảng thành tệp CSV

# export individually as CSV
tables[0].to_csv["foo.csv"]

CSV không phải là lựa chọn duy nhất;

import camelot

# PDF file to extract tables from
file = "foo.pdf"
2

Hoặc nếu bạn muốn xuất tất cả các bảng trong một lần

import camelot

# PDF file to extract tables from
file = "foo.pdf"
3

tham số f cho biết định dạng tệp, trong trường hợp này là "csv". Bằng cách đặt tham số nén bằng True, thao tác này sẽ tạo tệp ZIP chứa tất cả các bảng ở định dạng CSV

Bạn cũng có thể xuất các bảng sang định dạng HTML

import camelot

# PDF file to extract tables from
file = "foo.pdf"
0

hoặc bạn cũng có thể xuất sang các định dạng khác như JSON và Excel

Điều đáng chú ý là Camelot chỉ hoạt động với các tệp PDF dựa trên văn bản chứ không phải tài liệu được quét. Nếu bạn có thể nhấp và kéo để chọn văn bản trong bảng của mình trong trình xem PDF, thì đó là PDF dựa trên văn bản, do đó, điều này sẽ hoạt động trên giấy tờ, sách, tài liệu, v.v.

Đọc thêm. Cách chia nhỏ tệp PDF bằng Python

Trích xuất các bảng PDF bằng Tabula-py

Mở một tệp Python mới và nhập tabula

import camelot

# PDF file to extract tables from
file = "foo.pdf"
1

Chúng tôi chỉ đơn giản sử dụng phương pháp

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
0 để trích xuất các bảng trong tệp PDF [một lần nữa, hãy lấy ví dụ PDF tại đây]

import camelot

# PDF file to extract tables from
file = "foo.pdf"
2

Chúng tôi đặt

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
1 thành
# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
2 để trích xuất các bảng trong tất cả các trang PDF, phương thức
# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
3] trả về danh sách các
# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
4 gấu trúc, mỗi
# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
4 tương ứng với một bảng. Bạn cũng có thể chuyển một URL tới phương thức này và nó sẽ tự động tải xuống tệp PDF trước khi giải nén các bảng

Đoạn mã dưới đây là một ví dụ về việc lặp qua tất cả các bảng được trích xuất và lưu chúng dưới dạng bảng tính Excel

import camelot

# PDF file to extract tables from
file = "foo.pdf"
3

Điều này sẽ tạo thư mục

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
6 và đặt tất cả các bảng được phát hiện ở định dạng Excel vào thư mục đó, hãy dùng thử

Bây giờ, nếu bạn muốn trích xuất tất cả các bảng từ một tệp PDF và đổ chúng vào một tệp CSV thì sao?

import camelot

# PDF file to extract tables from
file = "foo.pdf"
4

Nếu bạn có nhiều tệp PDF và bạn muốn chạy phần trên trên tất cả chúng, thì bạn có thể sử dụng phương pháp

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
7

import camelot

# PDF file to extract tables from
file = "foo.pdf"
5

Điều này sẽ xem xét thư mục

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
8 và xuất tệp CSV cho từng tệp PDF trong thư mục đó

Phần kết luận

Đối với các tệp lớn, thư viện camelot có xu hướng hoạt động tốt hơn tabula-py. Tuy nhiên, đôi khi bạn sẽ gặp phải

# extract all the tables in the PDF file
tables = camelot.read_pdf[file]
9 đối với một số tệp PDF khi sử dụng thư viện camelot, bạn có thể sử dụng tabula-py thay thế

Lưu ý rằng điều này sẽ không chuyển đổi các ký tự hình ảnh thành văn bản kỹ thuật số. Nếu muốn, bạn có thể sử dụng các kỹ thuật OCR để chuyển đổi các ký tự quang học của hình ảnh thành văn bản thực tế có thể thao tác được trong Python. Các hướng dẫn dưới đây có thể giúp bạn

Dưới đây là một số hướng dẫn PDF có liên quan có thể giúp bạn trong công việc của mình

Để biết danh sách đầy đủ, hãy kiểm tra trang của danh mục

Được rồi, đây là nó cho hướng dẫn này. Kiểm tra tài liệu chính thức của camelot và tài liệu chính thức của tabula-py để biết thêm thông tin chi tiết

Làm cách nào để trích xuất dữ liệu từ tập dữ liệu trong python?

Thao tác và trích xuất dữ liệu sử dụng tiêu đề cột và vị trí chỉ mục . Sử dụng cắt để chọn bộ dữ liệu từ DataFrame. Sử dụng nhãn và lập chỉ mục dựa trên số nguyên để chọn phạm vi dữ liệu trong khung dữ liệu. Chỉ định lại các giá trị trong các tập hợp con của DataFrame.

Làm cách nào để trích xuất dữ liệu từ bảng bằng gấu trúc?

Cách trích xuất dữ liệu từ chuỗi và khung dữ liệu hiện có trong gấu trúc .
cảnh 1. Tạo một chuỗi từ một chuỗi hiện có. .
kịch bản 2. Tạo Sê-ri từ nhiều Sê-ri trong DataFrame. .
kịch bản 3. Tạo nhiều Sê-ri từ Sê-ri hiện có. .
Tình huống 4. Tạo nhiều sê-ri từ nhiều sê-ri [i. e. , Khung dữ liệu]

Làm cách nào để trích xuất dữ liệu bảng HTML trong python?

Để trích xuất một bảng từ HTML, trước tiên bạn cần mở các công cụ dành cho nhà phát triển của mình để xem HTML trông như thế nào và xác minh xem đó có thực sự là một bảng chứ không phải một phần tử nào khác không. Bạn mở công cụ dành cho nhà phát triển bằng phím F12, xem tab “Thành phần” và đánh dấu thành phần bạn quan tâm .

Làm cách nào để trích xuất dữ liệu bảng thành tệp CSV bằng python?

Trong hướng dẫn này, bạn sẽ thấy các bước hoàn chỉnh để xuất bảng SQL Server sang tệp CSV bằng Python. .
Bước 1. Cài đặt gói Pyodbc. .
Bước 2. Kết nối Python với máy chủ SQL. .
Bước 3. Xuất bảng máy chủ SQL sang CSV bằng Python

Chủ Đề