Định dạng pandas bảng HTML
Tiết lộ. Bài đăng này có thể chứa các liên kết liên kết, nghĩa là khi bạn nhấp vào liên kết và mua hàng, chúng tôi sẽ nhận được hoa hồng Show
Có nhiều trường hợp bạn phải chuyển đổi khung dữ liệu Pandas của mình thành bảng HTML. Hai trong số những lý do chính là bạn muốn xem tập dữ liệu của mình tốt hơn với tư cách là nhà phân tích dữ liệu hoặc tích hợp nó vào trang web của tổ chức bạn Trong hướng dẫn này, chúng tôi sẽ chuyển đổi bất kỳ khung dữ liệu Pandas nào thành một bảng tương tác có phân trang và chúng tôi có thể thực hiện sắp xếp theo cột và tìm kiếm Tất nhiên, để bắt đầu, bạn phải cài đặt Pandas
Nhập các thư viện cần thiết
Chúng tôi sẽ sử dụng mô-đun webbrowser để tự động mở bảng HTML kết quả trong một tab mới trên trình duyệt mặc định Hãy tạo một hàm chấp nhận khung dữ liệu làm đối số và trả về nội dung HTML cho điều đó
May mắn thay, Pandas có phương thức 3 tích hợp để tạo nội dung HTML của khung dữ liệu đó dưới dạng thẻ 4. Sau đó, chúng tôi tạo một trang HTML hoàn chỉnh và thêm tiện ích mở rộng bảng dữ liệu jQuery để nó tương tácTheo mặc định, phân trang, sắp xếp theo cột và tìm kiếm được bật; . Ví dụ: nếu bạn muốn tắt phân trang và hiển thị toàn bộ khung dữ liệu, bạn có thể bỏ ghi chú 5 (hãy nhớ ghi chú trong Javascript là 6 chứ không phải 7 như trong Python)Tôi đang lấy tập dữ liệu này cho mục đích trình diễn. Hãy thử nó ra
Sau khi chúng tôi nhận được nội dung HTML của mình, chúng tôi viết nó vào một tệp 8 mới và mở nó bằng chức năng 0. Đây là những gì nó trông giống nhưĐiều thú vị là chúng ta có thể tìm kiếm trên bảngSự kết luậnĐược rồi. Đó là nó cho hướng dẫn. Tôi hy vọng nó hữu ích để bạn dễ dàng xem tập dữ liệu của mình tốt hơn hoặc tích hợp nó dưới dạng nội dung HTML trên trang web của bạn Nếu bạn muốn theo cách khác, trích xuất các bảng HTML và chuyển đổi chúng thành tệp CSV, hãy xem hướng dẫn này Tập dữ liệu được sử dụng trong hướng dẫn này có nguồn gốc từ Kaggle. Bạn có thể tải tại đây nếu chưa có tài khoản Kaggle Lưu ý rằng kiểu dáng của bảng sẽ chỉ hoạt động nếu bạn có kết nối Internet. Nếu bạn muốn nó hoạt động ngoại tuyến, bạn chỉ cần tải xuống các tệp JS/CSS và đặt chúng vào thư mục hiện tại để nó tải chúng từ máy cục bộ của bạn thay vì từ CDN Bạn có thể lấy mã hoàn chỉnh tại đây Cuối cùng, nếu bạn là người mới bắt đầu và muốn học Python, tôi khuyên bạn nên tham gia khóa học Python For Everyone Coursera, trong đó bạn sẽ học được nhiều điều về Python. Bạn cũng có thể xem trang tài nguyên và khóa học của chúng tôi để xem các tài nguyên Python mà tôi đề xuất về các chủ đề khác nhau Sử dụng chức năng Pandas tích hợp để xuất DataFrame sang bảng HTML là cách nhanh chóng để xuất DataFrame của bạn nhưng nó có một số hạn chế. Sử dụng vòng lặp for để tạo bảng HTML cho phép bạn thêm bất kỳ kiểu dáng tùy chỉnh hoặc lớp CSS nào để định dạng nâng cao. Trong bài đăng này, tôi sẽ hướng dẫn bạn cách thực hiện điều đó Chuyển đổi DataFrame thành HTML bằng Pandas. to_html()gấu trúc. Khung dữ liệu. to_html() cho phép bạn trong một dòng mã để chuyển đổi Khung dữ liệu của bạn thành bảng HTML Đây là một DataFrame mẫu import pandas as pd import os df = pd.DataFrame({'Fruit':['apples','oranges','pears','avocados'],'Price':[0.50, 1.12,0.85,1.90], 'Weight': [3.2, 5.6, 2.2, 3.1] }) df Để chuyển đổi bảng này thành bảng HTML, bạn có thể chạy. 9Kết quả là một bảng HTML trông như thế này khi được xem trong Chrome Và sẽ tạo ra một đầu ra HTML trông như thế này
Tùy thuộc vào mục tiêu của bạn, đầu ra này có thể hoạt động tốt. Tuy nhiên, tôi không thể tìm thấy trong tài liệu cách thêm các lớp CSS cụ thể vào các hàng của bảng hoặc dữ liệu bảng Trong phần tiếp theo, tôi sẽ hướng dẫn bạn cách tôi giải quyết vấn đề đó Tạo một bảng HTML từ đầuMột giải pháp thay thế mà Pandas xuất sang HTML là lặp qua từng ô của DataFrame và tự xây dựng bảng HTML. Về cơ bản, đây là một cách tạo tài liệu HTML động Có hai phần trong chiến lược này. Đầu tiên là tự động xây dựng bảng HTML. Thứ hai là kết hợp bảng của bạn vào một tài liệu HTML lớn hơn Vòng qua từng ôĐể tự động lặp qua từng ô của DataFrame, bạn có thể lồng vòng lặp for bên trong vòng lặp for khác. Vòng lặp đầu tiên qua từng hàng và vòng lặp thứ hai qua từng cột. Đây là một ví dụ for i in range(df.shape[0]): for j in range(df.shape[1]): print (i,j) Trong ví dụ này, bạn có thể thấy biến 0 sẽ tăng như thế nào khi chúng ta bắt đầu một hàng mới. Đó là hàng đợi của chúng tôi để thêm trình bao bọc Hàng của Bảng HTML 1. Biến
Tiếp theo, tôi sẽ sử dụng vòng lặp for để tạo một hàm. Tôi sẽ giải thích chức năng chi tiết hơn bên dưới def create_html_table(x): row_data = '' for i in range(x.shape[0]): for j in range(x.shape[1]): if ((i % 2) != 0) & (j == 0): #not an even row and the start of a new row row_data += '\n Biến
Vòng lặp for chứa một loạt các điều kiện và những điều kiện này sẽ phụ thuộc vào cách bạn muốn định dạng dữ liệu. Đối với tôi, tôi muốn có các màu hàng xen kẽ và căn chỉnh các cột tùy thuộc vào loại dữ liệu của chúng. Tôi muốn dữ liệu văn bản của mình được căn trái và dữ liệu số của tôi được căn phải. Căn phải dữ liệu số giúp dễ đọc hơn một chút khi ở trong bảng vì các số lớn hơn sẽ mở rộng sang trái. Mỗi cột được đại diện bởi biến
Vòng lặp for lồng nhau chạy qua từng ô của DataFrame và sẽ trả về nội dung ô trong trình bao bọc Dữ liệu Bảng HTML
Khi____67, điều đó có nghĩa là chúng ta đã bắt đầu một hàng mới. Đó là lý do tại sao bạn sẽ thấy tôi trả lại trình bao bọc
for i in range(df.shape[0]): for j in range(df.shape[1]): print (i,j)0, điều đó có nghĩa là chúng tôi đã đến cuối dữ liệu trong hàng và điều kiện sẽ trả về trình bao bọc hàng của bảng đóng for i in range(df.shape[0]): for j in range(df.shape[1]): print (i,j)1 Tiếp theo, bạn có thể chạy chức năng trên DataFrame của mình. Sau đó nối các kết quả lại thành một tệp HTML lớn hơn. Đây là một ví dụ về điều đó 1Đầu ra HTML dưới dạng tệpĐể viết bảng HTML dưới dạng tệp, bạn có thể chạy tệp này 2Đầu ra HTML cho một EmailNếu bạn muốn nhúng đầu ra HTML vào email, bạn có thể sử dụng mã bên dưới. Để biết thêm thông tin về cách gửi email bằng Python, hãy xem bài đăng này – Gửi email có định dạng HTML với tệp đính kèm qua Gmail bằng Python Gấu trúc có thể đọc bảng HTML không?Hàm pandas read_html() là một cách nhanh chóng và thuận tiện để biến bảng HTML thành DataFrame của gấu trúc . Chức năng này có thể hữu ích để nhanh chóng kết hợp các bảng từ các trang web khác nhau mà không cần tìm cách cạo HTML của trang web.
Định dạng () trong gấu trúc là gì?Giới thiệu về định dạng Pandas. Định dạng Pandas là biểu thị thông tin trong tổ chức cần thiết . Đôi khi, giá trị lớn đến mức chúng ta cần thể hiện khía cạnh mong muốn của điều này hoặc có thể nói ở một số cấu hình lý tưởng. Thư viện gấu trúc Python sử dụng thiết kế ngày giờ tiêu chuẩn nguồn mở.
Làm cách nào để trích xuất bảng HTML từ 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 .
Thư viện Python nào có read_html()?read_html . Đọc các bảng HTML vào danh sách các đối tượng DataFrame. |