簡體   English   中英

您如何防止 pandas to_csv 將數字格式化為數字以保留前導 0?

[英]How do you prevent pandas to_csv from formatting numbers as numeric in order to preserve leading 0s?

我正在使用 to_csv 方法將數據幀保存為 csv。 但是,正在刪除前導 0。

例如,這是輸出數據幀之前的樣子: 在此處輸入圖片說明

正如您在第 6 列“采購訂單”中看到的,數據是數字但包含前導 0。 我想保留該格式並在輸出到 csv 並在 Excel 中查看時保留前導 0,但是在 csv 輸出中,前導 0 被刪除: 在此處輸入圖片說明

有沒有辦法防止這種情況? 這是我正在使用的命令:

out1.to_csv(outfile + '.csv', index=False, float_format='%f')

我相信這更像是 Excel 問題而不是pandas 如果您使用文本編輯器查看 csv 文件,(我猜)您仍然會看到帶有前導零的數字。 我這么說是因為我在 Excel 中遇到了類似的問題,假設 CSV 文件中的項目格式,即 date ,並產生不可逆或煩人的轉換。

在這種情況下,看起來 Excel 將采購訂單視為數字,然后將其格式化為數字。 它在打開文件時立即執行此操作,因此您無法返回並格式化單元格或任何內容(零丟失)。

我認為 2 個簡單的選擇是:

  • 使用df.to_excel().xlsx格式保存。 這對我有用一些假的前導零數據。 如果您只打算在 Excel 中使用數據,也許這是最好的。
  • 編輯您的采購訂單欄,使其清晰地顯示文字。 就像附加一個非數字字符(以后可以刪除):
df['Purchase Order'] = '#' + df['Purchase Order']
# df.to_csv('data.csv')

您是否嘗試過使用float_format='%.16f'或類似的東西?

暫無
暫無

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

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