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

如何让Pandas导出的CSV文件保持固定间距以提升可读性?

用Pandas导出带固定间距的类CSV文件(方便人工检查)

首先得说清楚:标准CSV本身就是逗号分隔的纯文本,没有「固定间距」的概念,但咱们可以用Pandas的内置方法生成类CSV的对齐格式文件,既保留CSV的结构,又能大幅提升人工查看的可读性。

方法一:用to_string()生成对齐文本后保存

to_string()是Pandas自带的文本格式化方法,能自动帮你对齐每一列,还可以指定分隔符,直接生成适合人工看的内容:

import pandas as pd

# 示例DataFrame
data = {
    'Name': ['Bill', 'Steve'],
    'ID': [6789, '02'],
    'Value': ['0.8900987U', '-0.23'],
    'Flag': ['Yes', 'No']
}
df = pd.DataFrame(data)

# 生成对齐文本:用逗号加空格当分隔符,设置列间距,左对齐
aligned_text = df.to_string(sep=', ', col_space=10, justify='left')

# 保存成文件,后缀用.txt或.csv均可
with open('aligned_data.txt', 'w') as f:
    f.write(aligned_text)

生成的内容示例:

Name      , ID        , Value      , Flag      
Bill      , 6789      , 0.8900987U , Yes       
Steve     , 02        , -0.23      , No        

方法二:自定义列宽后用to_csv()导出

如果必须保留.csv后缀,也可以先给每列内容填充空格,让每列长度一致,再导出成CSV:

# 计算每列内容的最大长度,再加2个空格作为间距
col_widths = df.apply(lambda x: x.astype(str).str.len().max() + 2)

# 将每列内容左对齐填充到指定宽度
df_aligned = df.apply(lambda col: col.astype(str).str.ljust(col_widths[col.name]))

# 导出为CSV,不保留索引列
df_aligned.to_csv('aligned_data.csv', index=False, sep=',')

导出后的CSV内容示例:

Bill  ,6789  ,0.8900987U,Yes  
Steve ,02    ,-0.23     ,No   

小提醒

  • 这种带空格的CSV,用Excel等标准解析工具打开时会自动忽略多余空格,完全不影响数据导入
  • 如果是给程序用的标准CSV,不要加这些空格,仅在人工检查时使用上述方法即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 04:30:19