PythonPrettyTable是Python的一个生成漂亮表格的库。它提供了简单易用的API以及各种定制化的选项,可以快速生成符合各种需求、美观易读的表格。在这篇文章中,我们将从多个方面对PythonPrettyTable做详细阐述,以便让读者了解该库的所有特性以及如何使用。
一、基础使用
PythonPrettyTable最简单的使用是通过传入表头和数据来创建表格:
from prettytable import PrettyTable x = PrettyTable() x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) print(x)
这样就可以生成一个包含表头和数据的表格了:
+————-+——+————+—————–+
| City name | Area | Population | Annual Rainfall |
+————-+——+————+—————–+
| Adelaide | 1295 | 1158259 | 600.5 |
| Brisbane | 5905 | 1857594 | 1146.4 |
| Darwin | 112 | 120900 | 1714.7 |
| Hobart | 1357 | 205556 | 619.5 |
| Sydney | 2058 | 4336374 | 1214.8 |
| Melbourne | 1566 | 3806092 | 646.9 |
+————-+——+————+—————–+
在这个例子中,我们首先创建了一个空的PrettyTable对象,然后设置表头和数据,最后通过`print`函数打印出来。
二、定制化选项
除了基础使用之外,PythonPrettyTable还提供了各种选项以定制生成的表格。下面是其中几个常用的选项:
1. 添加样式
from prettytable import PrettyTable x = PrettyTable() x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.align["City name"] = "l" # 左对齐 x.align["Area"] = "r" # 右对齐 x.align["Population"] = "r" x.align["Annual Rainfall"] = "r" x.border = False # 去掉边框 x.header = True # 显示表头 x.padding_width = 1 # 设置单元格的间隔 print(x)
这样就可以生成一个没有边框的表格:
City name | Area | Population | Annual Rainfall
————–+——-+————+—————–
Adelaide | 1295 | 1158259 | 600.5
Brisbane | 5905 | 1857594 | 1146.4
Darwin | 112 | 120900 | 1714.7
Hobart | 1357 | 205556 | 619.5
Sydney | 2058 | 4336374 | 1214.8
Melbourne | 1566 | 3806092 | 646.9
在这个例子中,我们使用了`align`属性设置每列的对齐方式,使用了`border`属性设置是否显示边框,使用了`header`属性设置是否显示表头,以及使用了`padding_width`属性设置单元格之间的间隔。
2. 设置字段类型
有时候表格中的字段可能是不同的类型,如果想要正确地对这些类型进行比较或排序,就需要通过属性`set_style`来设置类型。
from prettytable import PrettyTable x = PrettyTable() x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.align["City name"] = "l" x.align["Area"] = "r" x.align["Population"] = "r" x.align["Annual Rainfall"] = "r" x.set_style(13) # 设置Area和Population的类型为整型 x.set_style(13, target='rows', slice(1, 5, 2)) # 设置偶数行的Area和Population的类型为整型 print(x)
这样就可以生成一个带有整型字段的表格:
City name | Area | Population | Annual Rainfall
————–+——-+————+—————–
Adelaide | 1295 | 1158259 | 600.5
Brisbane | 5905 | 1857594 | 1146.4
Darwin | 112 | 120900 | 1714.7
Hobart | 1357 | 205556 | 619.5
Sydney | 2058 | 4336374 | 1214.8
Melbourne | 1566 | 3806092 | 646.9
在这个例子中,我们使用了`set_style`属性,设置了`Area`和`Population`的类型为整型。
三、高级用法
除了基础用法和定制化选项之外,PythonPrettyTable还提供了许多高级的功能,包括表格转置、排序、分片等。这些功能可以更加灵活地处理表格数据,满足各种需求。
1. 表格转置
通过`transpose`属性可以将表格转置。
from prettytable import PrettyTable x = PrettyTable() x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.align["City name"] = "l" x.align["Area"] = "r" x.align["Population"] = "r" x.align["Annual Rainfall"] = "r" print(x.transpose())
这样就可以生成一个转置后的表格:
+—————–+————-+———+——-+——–+————+
| 0 | 1 | 2 | 3 | 4 | 5 |
+—————–+————-+———+——-+——–+————+
| City name | Adelaide | Brisbane| Darwin| Hobart | Sydney |
| | | 1295 | 5905 | 112 | 1357 | 2058 |
| | | 1158259 | 1857594|120900 | 205556 | 4336374 |
| | | 600.5 | 1146.4 |1714.7 | 619.5 | 1214.8 |
|—————–+————-+———+——-+——–+————+
| | Melbourne | | | | |
|—————–+————-+———+——-+——–+————+
| | 1566 | | | |
| | 3806092 | | | |
| | 646.9 | | | |
+—————–+————-+———+——-+——–+————+
在这个例子中,我们使用了`transpose`属性将表格进行了转置。
2. 排序和分片
通过`sortby`和`reverse_sortby`属性可以对表格进行排序。另外,可以使用`slice`方法对表格进行分片。
from prettytable import PrettyTable x = PrettyTable() x.field_names = ["City name", "Area", "Population", "Annual Rainfall"] x.add_row(["Adelaide", 1295, 1158259, 600.5]) x.add_row(["Brisbane", 5905, 1857594, 1146.4]) x.add_row(["Darwin", 112, 120900, 1714.7]) x.add_row(["Hobart", 1357, 205556, 619.5]) x.add_row(["Sydney", 2058, 4336374, 1214.8]) x.add_row(["Melbourne", 1566, 3806092, 646.9]) x.align["City name"] = "l" x.align["Area"] = "r" x.align["Population"] = "r" x.align["Annual Rainfall"] = "r" x.sortby = "Population" x.reversesort = True print(x.get_string(start=1, end=4, sortby="Area"))
这样就可以生成一个排序和分片后的表格:
+————+——+————+—————–+
| City name | Area | Population | Annual Rainfall |
+————+——+————+—————–+
| Brisbane | 5905 | 1857594 | 1146.4 |
| Melbourne | 1566 | 3806092 | 646.9 |
| Sydney | 2058 | 4336374 | 1214.8 |
+————+——+————+—————–+
在这个例子中,我们使用了`sortby`属性对表格进行了排序,并使用了`reversesort`属性使结果反向。同时,我们还使用了`get_string`方法对结果进行分片,并设置了其他属性以满足不同的需求。
四、总结
在本篇文章中,我们详细阐述了PythonPrettyTable库的基础使用、定制化选项以及高级用法。通过实例化一个PrettyTable对象,设置表头和数据,以及其他不同的属性和方法,我们可以生成各种各样的表格来展示和处理数据。如果你对数据分析和可视化有一定的需求,PythonPrettyTable是一个非常好的选择。
原创文章,作者:BTAN,如若转载,请注明出处:https://www.506064.com/n/144227.html