我有一个浮点数的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)
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
答案 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),但是它将格式应用于所有列中的值。鉴于您的情况,您需要为每一列使用不同的格式。