【问题标题】:Write pandas dataframe to_csv in columns with trailing zeros在带有尾随零的列中写入 pandas 数据帧 to_csv
【发布时间】:2019-11-01 03:01:19
【问题描述】:

我有一个浮点数的 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

【问题讨论】:

标签: python pandas csv dataframe


【解决方案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

有 pandas df.to_csv(float_format='%.5f') (more info) 但它将格式应用于所有列中的值。而在您的情况下,您需要为每列设置不同的格式。

【讨论】:

    猜你喜欢
    • 2019-10-14
    • 2017-09-01
    • 1970-01-01
    • 2018-12-22
    • 1970-01-01
    • 2017-04-01
    • 2015-10-19
    • 2021-07-22
    • 2018-02-24
    相关资源
    最近更新 更多