Các thư viện đơn giản nhưng hữu ích để tạo các bảng dựa trên văn bản
Ảnh của Anil Xavier trên unplashGiới thiệu
Những ngày này, tôi thường dành một chút thời gian để đọc về các gói Python mới vào buổi sáng. Đáng ngạc nhiên, đã có rất nhiều thư viện đơn giản nhưng hữu ích mà tôi ước mình đã biết về chúng sớm hơn.
Tôi đã cố gắng tóm tắt chúng thành các chủ đề khác nhau, và trong bài viết này ngày hôm nay, tôi đã muốn thảo luận về một trong những chủ đề này với bạn: Cách tạo ra các bảng trong Python một cách nhanh chóng?
Bây giờ, hãy để xem những gì chúng ta có ở đây.
Đẹp
PrettyTable là gói Python cho phép bạn tạo các bảng ASCII cơ bản. Các mẫu bảng khác nhau, chẳng hạn như căn chỉnh văn bản hoặc thứ tự dữ liệu, có thể được tùy chỉnh dễ dàng với các mã đơn giản. Để biết thêm chi tiết, hãy để Lôi nhìn vào một vài ví dụ dưới đây.
Nhưng trước tiên, cài đặt gói này bằng cách:
!pip install prettytable
from prettytable import PrettyTable as pt
Tạo bảng
Chúng tôi có thể áp dụng các phương thức
tb = pt[]#Add headers3 hoặc
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
tb = pt[]#Add headers4 để tạo các bảng mong muốn. Đầu ra bảng như sau:
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
- Add_row []: Các hàng dần dần được thêm vào bảng.The rows are gradually added to the table.
tb = pt[]#Add headers
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
- Add_column []: Các cột được thêm dần vào bảng.The columns are gradually added to the table.
tb1 = pt[]#Add headers
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
Đặt tên cho bàn
Chúng ta có thể đặt tên cho bảng bằng cách đặt tiêu đề cho nó với
tb = pt[]#Add headers5Hình 2: Thêm tiêu đề vào bảng - Hình ảnh của tác giả
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
Điều chỉnh dữ liệu bảng
Với thuộc tính
tb = pt[]#Add headers6, chúng ta có thể kiểm soát căn chỉnh dữ liệu ở bên phải, trung tâm hoặc bên trái. Chẳng hạn, tôi muốn thay đổi các giá trị dữ liệu của cột chính ở bên trái, đặt
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
tb = pt[]#Add headers6 thành
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
tb = pt[]#Add headers8 Tương tự, nếu bạn muốn dữ liệu ở bên phải, hãy đặt nó thành
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
tb = pt[]#Add headers9 và
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
tb1 = pt[]#Add headers0 để định tâm.Major column to the left, set
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
tb = pt[]#Add headers6 to
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
tb = pt[]#Add headers8 Similarly, if you want the data on the right, set it to
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
tb = pt[]#Add headers9 and
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
tb1 = pt[]#Add headers0 for centering.
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
tb.align["Major"] = "l"
Xóa hàng
Thật dễ dàng để loại bỏ các hàng không mong muốn khỏi các bảng. Tất cả những gì bạn phải làm là áp dụng
tb1 = pt[]#Add headers1 vì tôi không cần hàng cuối cùng nữa, đây là cách tôi xóa nó khỏi bảng của mình:
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
tb.del_row[2]
Sắp xếp dữ liệu
tb1 = pt[]#Add headers2 và
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
tb1 = pt[]#Add headers3 giúp sắp xếp các giá trị dữ liệu theo một thứ tự cụ thể. Trong khi
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
tb1 = pt[]#Add headers2 xác định cột nào được sắp xếp,
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
tb1 = pt[]#Add headers3 chỉ định thứ tự sắp xếp.
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
Ví dụ: phân loại học sinh từ lớp cao nhất đến thấp nhất., Sorting students from the highest grade to the lowest.
Hình 3: Sắp xếp dữ liệu - Hình ảnh của tác giả ____555Tạo đầu ra HTML
Với sự hỗ trợ của
tb1 = pt[]#Add headers6, chúng tôi có thể dễ dàng tạo ra đầu ra HTML trong bảng điều khiển.
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
print[tb.get_html_string[]]
Tabulation
Tabulation là một thư viện khác mà tôi muốn giới thiệu. Về cơ bản, nó khá giống với PrettyTable, nhưng tôi nghĩ rằng nó linh hoạt hơn trong việc tùy chỉnh lưới so với đẹp. Chúng tôi sẽ trải qua một số ví dụ để xem các yếu tố này được tùy chỉnh bằng cách sử dụng các thuộc tính bảng. is another library I’d like to recommend. Basically, it is pretty similar to PrettyTable, but I think it is more flexible in customizing the grid compared to PrettyTable. We will go through some examples to see how these elements are customized using Tabulate attributes.
Chúng tôi có thể cài đặt gói này bằng cách:
!pip install tabulate
Tạo một bảng không có đường dây lưới
Hình 4: Không có dòng lưới - Hình ảnh của tác giảdf = [["Chi", "Vietnam","Graduate"],
["John","USA","Graduate"],
["Lily","Belgium","Graduate"]] #define header names
col_names = ["Name", "Country", "Program"]
#display table
print[tabulate[df, headers=col_names]]
Tạo một bảng với đường lướigrid line
print[tabulate[df, headers=col_names, tablefmt="fancy_grid"]]
Fig 5: Bảng với dòng lưới - Hình ảnh của tác giảNgoài
tb1 = pt[]#Add headers7, có một số định dạng bảng khác mà bạn có thể thử sao cho
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
tb1 = pt[]#Add headers8,
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
tb1 = pt[]#Add headers9,
column_names = ["ID","Name", "Major"]#Add columns
tb1.add_column[column_names[0],[1,2,3]]
tb1.add_column[column_names[1],["Chi","John","Lily"]]
tb1.add_column[column_names[2],["Statistics","Business Administration","Statistics"]]
tb1.add_column[column_names[3],[3.5,3.6,3.7]]print[tb1]
tb.align["Major"] = "l"
0.
Thêm một chỉ mục vào bảng
Thêm chỉ mục: Hiển thị chỉ mục bằng cách áp dụng thuộc tính tb.align["Major"] = "l"
1Showing index by applying attribute
tb.align["Major"] = "l"
1Hình 6: Bảng có chỉ mục - Hình ảnh của tác giảTexttable
Cá nhân, tôi nghĩ rằng đây là thư viện có thể điều chỉnh nhất trong số ba thư viện. Nó có thể kiểm soát chiều rộng cột, điều chỉnh căn chỉnh dữ liệu cả theo chiều ngang và chiều dọc và thay đổi linh hoạt các đường lưới của bảng.
Tạo bảng
Ví dụ: mã bên dưới cho thấy cách tôi tạo một bảng bằng thư viện TextTable. Tương tự như PrettyTable, để có thể chèn một hàng vào bảng bằng cách tạo danh sách với nội dung hàng của hàng và áp dụng đối tượng TextTable đối tượng ____ ____32Function để thêm nó vào bảng.Texttable library. Similar to the PrettyTable, to can insert a row to the table by generating a list with the row’s contents and applying the TextTable object’s
tb.align["Major"] = "l"
2function to add it to the table.tb = pt[]#Add headers0Fig 7: Bảng có văn bản - hình ảnh của tác giả
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
Thay đổi chiều rộng của các cột
Chiều rộng của các cột trong bảng có thể được điều chỉnh bằng cách sử dụng
tb.align["Major"] = "l"
3 Tổng số trong danh sách tương ứng với số lượng cột trong bảng.tb = pt[]#Add headers1
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
Đặt căn chỉnh dữ liệu
Các phương pháp
tb.align["Major"] = "l"
4and tb.align["Major"] = "l"
5 có thể được sử dụng để căn chỉnh dữ liệu theo chiều ngang và chiều dọc bên trong các ô bảng.Với
tb.align["Major"] = "l"
6, đầu vào có thể được đặt là tb.align["Major"] = "l"
7, tương ứng với căn chỉnh giữa, trái hoặc bên phải.Với
tb.align["Major"] = "l"
8, chúng tôi có thể chỉ định ____39 cho sự liên kết hàng đầu, tb.del_row[2]
0 cho căn chỉnh giữa và liên kết dưới cùng.Lưu ý rằng danh sách đưa vào các hàm căn chỉnh phải có cùng độ dài với số lượng giá trị liên tiếp.
Kiểm soát các dòng
Để thay đổi bản vẽ của các dòng giữa các hàng và cột, cũng như giữa tiêu đề và hàng đầu tiên, hàm
tb.del_row[2]
2 được sử dụng. Trong tb.del_row[2]
2, có bốn yếu tố kiểm soát:tb.del_row[2]
4 Đường viền của bảngtb.del_row[2]
5 Dòng dưới tiêu đềtb.del_row[2]
6 Các dòng giữa các hàngtb.del_row[2]
7 Các đường giữa các cột
Bằng cách kết hợp bốn yếu tố đó trong
tb.del_row[2]
8, bạn quyết định tính năng nào có sẵn cho bảng. Ví dụ: tôi chọn giữ các dòng bên dưới tiêu đề và giữa các hàng trong mã bên dưới. Đồng thời, tôi không đề cập đến tb.del_row[2]
4 và tb.del_row[2]
7 có nghĩa là tôi tắt các đường giữa các cột và xung quanh bảng.tb = pt[]#Add headers2Fig 8: Kiểm soát các dòng - Hình ảnh của tác giả
tb.field_names = ["ID","Name", "Major","Grade"]#Add rows
tb.add_row[[1,"Chi", "Statistics",3.5]]
tb.add_row[[2,"John","Business Administration"],3.6]
tb.add_row[[3,"Lily","Satistics"],3.7]print[tb]
Sự kết luận
Trên đây là một số gợi ý của tôi để tạo ra một bảng dựa trên văn bản. Tôi hy vọng họ có thể giúp bạn theo một số cách.
Một ngày tốt lành tất cả.