2017-06-30 70 views
0

我不得不將大量的熊貓dfs導出到csv文件。 在DFS包含數值爲浮點數(浮子64)Pandas.to_csv()十進制參數

df.to_csv('df.csv', sep = ";", decimal = ",", encoding = "utf-8", index = False) 

我學的硬方式來指定十進制字符作爲一個參數是極爲重要的(十進制=「‘),而不是’。」如果您使用歐洲數據/號碼,這是默認參數。這使我作爲格式化字符串,而不是浮動(不可能的進一步工作)號碼,如:

「7.48E + 17」

了幾個小時的調試代碼&發現其中的錯誤。

爲什麼這麼痛苦?如何知道數據是歐洲還是美國風格?

回答

0

你使用Excel嗎? 你想要解決什麼問題:格式如「7.48E + 17」還是那個字符串?

如果問題與格式:as,那麼,因爲我知道像「7.48E + 17」格式是Excel的問題(如果您使用它)。此外,Excel對單元格的長度有限制(看起來大約是here

我試着用float格式保存csv,它沒問題。我用引用:據我所知它可以幫助你將所有的非數字值轉換爲字符串。

df = pd.DataFrame([[12.12412412421410000,1.247518274658710000, 9.908098210849, 2.19870912870918, 1.2871287012 ], 
       [12.12412412421410000,1.247518274658710000, 9.908098210849, 2.19870912870918, 1.2871287012 ]]) 
df.to_csv('df.csv', decimal='.', 
      header=None, index=False , 
      quoting=csv.QUOTE_NONNUMERIC, encoding='utf8')