Pandas.to_csv()十进制参数

时间:2017-06-30 08:48:40

标签: python csv pandas

我不得不将许多pandas dfs导出到csv文件。 dfs包含数值作为浮点数(浮点数64)

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

我很难理解将十进制字符指定为参数(十进制=",")而不是"非常重要。"如果您使用欧洲数据/数字,这是defaut参数。这导致我将数字格式化为字符串而不是浮点数(不可能进一步使用),如:

  

" 7.48E + 17"

调试代码需要几个小时。找到错误。

为什么会这么痛苦?我怎么知道数据是欧洲还是美国风格?

1 个答案:

答案 0 :(得分:0)

您使用Excel吗? 你想要解决的问题是什么:格式如" 7.48E + 17"或者那是字符串?

如果格式问题:as,那么,因为我知道格式如" 7.48E + 17"是Excel的问题(如果你使用它)。此外,Excel对单元格的长度有限制(查看here

我试图用浮动格式保存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')