2017-06-30 89 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')