打印表格时包含文本摘要,可以通过以下几种方式实现:1. 在表格上方添加摘要行在表格的第一行或第二行插入一个“摘要”单元格,用于简要说明表格内容。示例:| 摘要:
本文介绍了如何使用tabulate库在PandasDataFrame打印的表格中垂直连接文本摘要。通过自定义表格格式和后处理,可以实现将两个DataFrame以清晰美观的方式连接在一起,使得表格既包含数据信息,又包含对数据的简要概括。

本文介绍了如何使用 tabulate 库在 Pandas DataFrame 打印的表格中垂直连接文本摘要。通过自定义表格格式和后处理,可以实现将两个 DataFrame 以清晰美观的方式连接在一起,使得表格既包含数据信息,又包含对数据的简要概括。
在数据分析和报告生成中,经常需要在表格中包含数据的简要说明或摘要。虽然 Pandas 提供了强大的数据处理能力,但直接将文本摘要与数据表格垂直连接并打印成美观的格式并非易事。tabulate 库是一个可以轻松生成格式化表格的 Python 库,结合 Pandas DataFrame,可以实现灵活的表格输出。
使用 tabulate 库
首先,确保已经安装了 tabulate 库。如果没有安装,可以使用 pip 进行安装:
pip install tabulate
示例代码
假设我们有两个 DataFrame,df1 包含数据信息,df2 包含文本摘要。
import pandas as pd
from tabulate import tabulate
data1 = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'Height': [165, 182, 177]
}
df1 = pd.DataFrame(data1)
data2 = {
'Summary': ["Alice is the youngest", "Bob is the tallest"]
}
df2 = pd.DataFrame(data2)以下代码演示了如何使用 tabulate 将这两个 DataFrame 垂直连接并打印成表格:
from tabulate import tabulate
tabulate.PRESERVE_WHITESPACE = True
width1 = 10
width2 = width1 * df1.shape[1] + df1.shape[1]*2
str1 = tabulate(df1.applymap(f'{{:^{width1}}}'.format), list(df1),
tablefmt='outline',
stralign='center', numalign='center')
str2 = tabulate(df2.applymap(f'{{:^{width2}}}'.format), df2.columns,
tablefmt='outline',
stralign='center', numalign='center')
print(str1 + '\n' + '\n'.join(str2.splitlines()[1:]))这段代码首先定义了表格的宽度,然后使用 tabulate 函数分别将 df1 和 df2 转换为字符串形式的表格。applymap 函数用于格式化 DataFrame 中的每个元素,使其居中对齐。tablefmt='outline' 指定了表格的格式为 outline 风格。最后,将两个表格字符串连接在一起,并去除 str2 的第一行(表头),以实现垂直连接的效果。
动态调整摘要表格宽度
上面的方法需要手动计算摘要表格的宽度。为了更灵活地适应数据表格的宽度,可以使用以下代码:
from tabulate import tabulate
tabulate.PRESERVE_WHITESPACE = True
str1 = tabulate(df1, list(df1), tablefmt='outline',
stralign='center', numalign='center')
H = str1.split('\n', 1)[0]
L = len(H)-H[1:].index('+')-5
str2 = tabulate(df2.applymap(f'{{:^{L}}}'.format),
list(df2), tablefmt='outline',
stralign='center', numalign='center')
print(str1 + '\n' + '\n'.join(str2.splitlines()[1:]))这段代码首先生成数据表格的字符串形式,然后通过分析表格的头部信息,动态计算摘要表格的宽度。这样可以确保摘要表格的宽度与数据表格的宽度一致,从而实现更好的视觉效果。
注意事项
- 确保 tabulate 库的版本较新,以支持更多的表格格式和功能。
- 可以根据实际需求调整表格的格式,例如对齐方式、边框样式等。
- 如果 DataFrame 中包含非字符串类型的数据,需要先将其转换为字符串类型,再进行格式化。
- tabulate.PRESERVE_WHITESPACE = True 可以保留DataFrame中的空格,从而保证格式的正确性。
总结
通过使用 tabulate 库,我们可以轻松地将 Pandas DataFrame 打印成格式化的表格,并实现将文本摘要与数据表格垂直连接的效果。这种方法可以提高数据报告的可读性和美观性,使得数据分析结果更加清晰易懂。通过动态调整摘要表格的宽度,可以更好地适应不同宽度的数据表格,从而实现更灵活的表格输出。
Postman是一套面向API全生命周期的开发与测试平台,可在Mac上发送和调试多种协议请求,管理集合、环境及认证信息,并完成脚本测试、模拟服务、监控、文档发布和团队协作。它适合开发、测试及运维人员使用,提供个人免费方案。
Docker Desktop 是 Docker 官方为 Mac 提供的容器开发环境,集成 Docker Engine、命令行工具、Compose、Build、Kubernetes 与图形化管理界面。
Android Studio 是 Google 面向安卓应用开发提供的官方集成开发环境,基于 IntelliJ IDEA 构建。它整合智能代码编辑、Gradle 构建、界面预览、设备模拟、性能分析、调试测试及 APK 分析等工具。
PixPix 是面向品牌、卖家和内容团队的在线 AI 图片视频创作平台,提供图视频 Agent、无限画布、图片生成、视频生成、自然语言编辑及商品套图、产品精修和带货视频等电商工具。
Postman 是面向 API 全生命周期的开发与协作平台。Windows 桌面版可用于构建和发送 HTTP、GraphQL、gRPC、WebSocket、MQTT 等请求,并提供环境变量、集合、脚本测试、模拟服务、监控、文档及团队工作区等
Docker Desktop 为 Windows 开发者提供集成式容器环境,内置 Docker Engine、命令行工具、Compose、Build 与 Kubernetes 等组件,可在本机完成镜像构建、容器运行、日志查看和资源管理。













