如何用Pandas Dataframe为表头行填充空格匹配列宽并格式化行号列
解决方案
以下是用Pandas实现表头和数据列按指定宽度填充空格、格式化行号的代码:
import pandas as pd # 读取PSV文件,竖线作为分隔符,跳过分隔符后的空格 df = pd.read_csv('你的文件路径.psv', sep='|', skipinitialspace=True) # 定义各数据列的目标宽度(对应Address_line_1、Address_line_2、Suburb、Postcode、State) column_widths = [16, 56, 56, 42, 6, 3] # 行号列的显示宽度 index_width = 4 # 生成并打印格式化后的表头 header_segments = [' ' * index_width] + [col.ljust(width) for col, width in zip(df.columns, column_widths)] print('|'.join(header_segments)) # 遍历每一行,生成并打印格式化后的内容 for row_num, row_data in df.iterrows(): # 格式化行号,左对齐填充至指定宽度 formatted_index = str(row_num).ljust(index_width) # 格式化各列数据,左对齐填充至对应宽度 row_segments = [formatted_index] + [str(val).ljust(width) for val, width in zip(row_data.values, column_widths)] print('|'.join(row_segments))
关键说明:
- 使用
ljust(width)方法实现文本左对齐并填充空格至指定宽度,匹配你期望的排版效果。 - 读取文件时添加
skipinitialspace=True,避免分隔符|后的多余空格干扰数据读取。 - 行号列通过
index_width控制显示宽度,确保不同位数的行号(如0、10)排版对齐。
内容的提问来源于stack exchange,提问作者Ashu
相关产品推荐
相关产品推荐

