簡體   English   中英

在帶有尾隨零的列中寫入 pandas dataframe to_csv

[英]Write pandas dataframe to_csv in columns with trailing zeros

我有一個浮點數的 pandas dataframe 並希望寫出 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

您可以使用df.to_string() ( docs ) 獲取 dataframe 的字符串表示形式。 然后只需將此字符串寫入文本文件即可。

該方法還具有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')更多信息),但它將格式應用於所有列中的值。 而在您的情況下,您需要為每列提供不同的格式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM