如何用Pandas自动导出固定字符长度的美观制表符分隔CSV?
Pandas导出美观制表符分隔CSV的方案
Pandas没有内置的一键方法直接实现你需求的「自动计算列最大字符长度、左对齐填充空格后导出制表符分隔文件」的功能,但可以用更简洁的代码逻辑替代你手动遍历的步骤,效率更高:
优化实现代码
import pandas as pd # 示例DataFrame df = pd.DataFrame({ 'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [25, 30, 35], 'City': ['New York', 'London', 'Paris'] }) # 计算每列的最大字符长度(包含表头长度) max_lengths = [] for col in df.columns: header_len = len(str(col)) cell_max_len = df[col].astype(str).str.len().max() max_lengths.append(max(header_len, cell_max_len)) # 格式化表头 df.columns = [str(col).ljust(length) for col, length in zip(df.columns, max_lengths)] # 格式化所有单元格 df = df.apply(lambda col: col.astype(str).str.ljust(max_lengths[col.name])) # 导出为制表符分隔文件 df.to_csv('formatted_output.tsv', sep='\t', index=False)
替代方案:直接生成视觉美观的文本表格
如果只是需要视觉上对齐美观的表格文件,不需要严格的制表符分隔,可以用Pandas内置的to_string()方法,它会自动处理列对齐:
with open('pretty_table.txt', 'w') as f: f.write(df.to_string(index=False))
这个方法输出的是空格对齐的表格,适合直接查看,无需额外处理。
内容的提问来源于stack exchange,提问作者Sean L
相关产品推荐
相关产品推荐

