在尾部为零的列中将panda数据帧写入_csv



我有一个由float组成的panda数据帧,希望写出to_csv,将空白设置为delimeter,并用后面的零填充,这样它仍然可读(即具有等距列(。

复杂的因素是,我还希望每一列都四舍五入到不同数量的小数(有些需要更高的精度(。

复制:

import pandas as pd
df = pd.DataFrame( [[1.00000, 3.00000, 5.00000],
[1.45454, 3.45454, 5.45454]] )
df_rounded = df.round( {0:1, 1:3, 2:5} )
df_rounded.to_csv('out.txt', sep=' ', header=False)

out.txt的当前结果:

0 1.0 3.0 5.0
1 1.5 3.455 5.45454

所需:

0 1.0 3.000 5.00000
1 1.5 3.455 5.45454

您可以使用df.to_string()(docs(获得数据帧的字符串表示。然后简单地将这个字符串写入一个文本文件。

该方法还具有col_space参数,用于进一步调整列之间的间距。

示例:

with open('out.txt', 'w') as file:
file.writelines(df_rounded.to_string(header=False))

输出:

0  1.0  3.000  5.00000
1  1.5  3.455  5.45454

有pandasdf.to_csv(float_format='%.5f')(更多信息(,但它将格式应用于所有列中的值。然而,在您的情况下,每一列都需要不同的格式。

最新更新