Pandas 在将 DataFrame 导出到 CSV 时如何保留最后一个尾随零

flo*_*oss 5 python dataframe python-3.x export-to-csv pandas

在这个问题中,我的目标是在导出到时保留最后一个 尾随 zerosDataFrameCSV

我的dataset看起来像这样:

EST_TIME    Open    High
2017-01-01  1.0482  1.1200    
2017-01-02  1.0483  1.1230
2017-01-03  1.0485  1.0521
2017-01-04  1.0480  1.6483
2017-01-05  1.0480  1.7401
...., ...., ....
2017-12-31  1.0486  1.8480
Run Code Online (Sandbox Code Playgroud)

我通过执行以下操作导入并创建 DataFrame 并保存到 CSV:

df_file = '2017.csv'
df.to_csv(df_file, index=False)
files.download(df_file)
Run Code Online (Sandbox Code Playgroud)

当我查看 CSV 时,我看到以下内容:

EST_TIME    Open    High
2017-01-01  1.0482  1.12   
2017-01-02  1.0483  1.123
2017-01-03  1.0485  1.0521
2017-01-04  1.048   1.6483
2017-01-05  1.048   1.7401
...., ...., ....
2017-12-31  1.0486  1.848
Run Code Online (Sandbox Code Playgroud)

末尾的所有零都消失了。我想在保存 CSV 时保留尾随零,并且希望它位于小数点后 4 位。

您能让我知道如何实现这一目标吗?

小智 5

试试这个:浮点格式既可以显示 4 位小数的数据,也可以保存 4 位小数。

当读到 pandas 时:

pd.options.display.float_format = '{:,.4f}'.format
Run Code Online (Sandbox Code Playgroud)

保存为 CSV 时。

df.to_csv('your_file.csv', float_format='%.4f',index=False)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述


cis*_*sco 2

您可以在写入 csv 之前调用apply并使用:format

df_file = '2017.csv'
df['Open'] = df['Open'].apply('{:0<6}'.format)
df['High'] = df['High'].apply('{:0<6}'.format)
df.to_csv(df_file, index=False)

Run Code Online (Sandbox Code Playgroud)

要应用于所有列,您可以使用applymap

df = df.applymap('{:0<6}'.format)
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助。