技术文摘
5 个实用案例:Python 输出精美表格
2024-12-31 10:23:23 小编
5 个实用案例:Python 输出精美表格
在数据处理和展示中,Python 提供了强大的工具和库来输出精美的表格。以下将为您介绍 5 个实用案例,帮助您轻松实现这一目标。
案例一:使用 Pandas 库
Pandas 是 Python 中用于数据处理的强大库。通过读取数据文件,如 CSV 或 Excel,然后使用pandas.DataFrame对象,可以方便地进行数据操作和表格输出。
import pandas as pd
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'London', 'Paris']}
df = pd.DataFrame(data)
print(df)
案例二:PrettyTable 库
PrettyTable 库专门用于创建美观的表格。可以自定义列名、对齐方式等。
from prettytable import PrettyTable
table = PrettyTable()
table.field_names = ["Name", "Age", "City"]
table.add_row(["Alice", 25, "New York"])
table.add_row(["Bob", 30, "London"])
table.add_row(["Charlie", 35, "Paris"])
print(table)
案例三:Tabulate 库
Tabulate 库支持多种表格格式的输出,如 plain、simple、grid 等。
from tabulate import tabulate
data = [['Alice', 25, 'New York'],
['Bob', 30, 'London'],
['Charlie', 35, 'Paris']]
print(tabulate(data, headers=["Name", "Age", "City"], tablefmt="grid"))
案例四:使用 CSV 模块结合格式化输出
通过 CSV 模块读取数据,然后进行格式化打印。
import csv
with open('data.csv', newline='') as csvfile:
reader = csv.reader(csvfile)
headers = next(reader)
for row in reader:
print(f"{row[0]:<10} {row[1]:<5} {row[2]:<15}")
案例五:自定义表格输出函数
根据具体需求,自定义一个表格输出函数,实现更灵活的控制。
def print_table(data, headers):
max_lengths = [max(len(str(item)) for item in col) for col in zip(*data)]
format_string = " | ".join(["{:<" + str(length) + "}" for length in max_lengths])
print(format_string.format(*headers))
print('-' * (sum(max_lengths) + 3 * len(headers) - 1))
for row in data:
print(format_string.format(*row))
data = [['Alice', 25, 'New York'],
['Bob', 30, 'London'],
['Charlie', 35, 'Paris']]
headers = ["Name", "Age", "City"]
print_table(data, headers)
通过以上 5 个实用案例,您可以根据不同的场景和需求,选择最合适的方法来使用 Python 输出精美表格,让数据展示更加清晰和专业。
- Go1.21 速览:自定义 go.env 文件获支持 但仍存缺陷
- 理解 CSS step 函数中 jump-* 关键词的方法
- 开启 Rust 代码编写之旅
- 五个新颖的数据科学工具与 Python 结合使用价值高
- 15 个让 JavaScript 代码更简洁的技巧
- JavaScript 中 API 调用的四种方法
- 惊!此框架竟开发出超好用的 Markdown 编辑器
- 共话【软件架构模式】之微内核架构
- 探讨 Node.js GC 负载的计算方法
- 15 个助力 Web 开发人员的代码共享站点
- Sentinel:流量控制与服务降级的绝佳利器
- 高中生突破 React 性能上限,使 React 性能提高 70%
- MybatisPlus 的一个坑及面试题需留意
- 微服务注册中心的选型:几个关键维度解析
- 面试官的疯狂之问:While(true)与For(;;)谁的性能更佳?