将熊猫数据帧写入具有尾随零的列中的to_csv

时间:2019-10-31 18:03:28

标签: python pandas csv dataframe

我有一个浮点数的pandas数据框,希望写出to_csv,将空格设置为分界符,并在其后加上零以使其仍然可读(即,等间距的列)。

复杂的因素是我还希望将每一列四舍五入为不同的小数位数(有些需要更高的精度)。

要复制:

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

1 个答案:

答案 0 :(得分:1)

您可以使用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

有熊猫df.to_csv(float_format='%.5f')more info),但是它将格式应用于所有列中的值。鉴于您的情况,您需要为每一列使用不同的格式。