如何对齐熊猫中的单元格值

时间:2020-06-10 19:56:31

标签: python pandas

我有数据表,

A     |B     |C     |D     |     E
abc|def|ghij|klmmm|ooo
lorem|ipsum|dol|amet|hel

但是当我使用pd.to_csv('sample.csv', sep='|')

时,我希望结果csv文件看起来像
A     |B     |C     |D     |     E
abc   |def   |ghij  |klmmm |ooo
lorem |ipsum |dol   |amet  |hel

我正在检查pandas文档(https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.to_csv.html),但是看不到任何可以对齐单元格空间的内容。我可以对齐输出csv文件的空间吗?

谢谢

1 个答案:

答案 0 :(得分:1)

提供的数据都是字符串,您可以执行以下操作:

max_len = df.applymap(len).max().max() + 1
justify = lambda x: x.ljust(max_len)
df.applymap(justify).to_csv(sep='|', header=df.columns.map(justify), index=False)

结果:

A     |B     |C     |D     |E     
abc   |def   |ghij  |klmmm |ooo   
lorem |ipsum |dol   |amet  |hel

如果您有字符串和非字符串数据,则可能要使用df.astype(str)而不是df。对于所有浮动数据帧,您可以使用float_format

另一种(甚至更好)的可能性是to_string