You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python PrettyTable如何按指定列相同值分组插入行分隔符

实现方法

PrettyTable 支持自定义水平分隔线的位置,按照以下步骤即可实现按指定列分组加分隔线的效果:

步骤1:安装依赖

如果还未安装PrettyTable,执行以下命令安装:
pip install prettytable

步骤2:代码实现

from prettytable import PrettyTable

# 你的表格源数据,需预先按要分组的列排序
data_rows = [
    [1, "de", "German"],
    [2, "de", "German"],
    [3, "en", "English"],
    [4, "en", "English"],
    [5, "es", "Spanish"],
    [6, "es", "Spanish"],
]

# 初始化表格、设置表头和标题
table = PrettyTable()
table.field_names = ["ID", "LangCode", "LangName"]
table.title = "AUDIO TRACKS"

# 批量添加行数据
for row in data_rows:
    table.add_row(row)

# 配置分组规则
group_by_column = "LangCode"  # 替换为你要分组的列名
split_positions = set()
col_index = table.field_names.index(group_by_column)

# 遍历行计算分隔线位置:相邻行分组列值不同时,在当前行上方添加分隔线
for row_idx in range(1, len(data_rows)):
    if table.rows[row_idx][col_index] != table.rows[row_idx-1][col_index]:
        split_positions.add(row_idx)

# 应用分隔线配置
table.hrules = 0
table.horizontal_rules = split_positions

# 输出结果
print(table)

注意事项

  • 源数据必须预先按照你指定的分组列排序,否则同值的行分散在不同位置会导致分隔线添加错误
  • 如果需要更换分组列,只需要修改group_by_column的值为对应表头名称即可

内容的提问来源于stack exchange,提问作者mark12345

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 04:54:02