我不得不将许多pandas dfs导出到csv文件。 dfs包含数值作为浮点数(浮点数64)
df.to_csv('df.csv', sep = ";", decimal = ",", encoding = "utf-8", index = False)
我很难理解将十进制字符指定为参数(十进制=",")而不是"非常重要。"如果您使用欧洲数据/数字,这是defaut参数。这导致我将数字格式化为字符串而不是浮点数(不可能进一步使用),如:
" 7.48E + 17"
调试代码需要几个小时。找到错误。
为什么会这么痛苦?我怎么知道数据是欧洲还是美国风格?
答案 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')