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
相关产品推荐
相关产品推荐

