Pandas.to_csv() 十进制参数
Posted
技术标签:
【中文标题】Pandas.to_csv() 十进制参数【英文标题】:Pandas.to_csv() decimal parameter 【发布时间】:2017-06-30 08:48:40 【问题描述】:我不得不将大量 pandas dfs 导出到 csv 文件。 dfs 包含作为浮点数的数值 (float 64)
df.to_csv('df.csv', sep = ";", decimal = ",", encoding = "utf-8", index = False)
我学到了将十进制字符指定为参数 (decimal = ",") 而不是 "." 的艰难方法。如果您使用欧洲数据/数字,这是默认参数。这导致我将数字格式化为字符串而不是浮点数(进一步无法使用),例如:
“7.48E+17”
调试代码和找出错误花了几个小时。
为什么这么痛?如何知道数据是欧式还是美式?
【问题讨论】:
【参考方案1】:您使用 Excel 吗? 你想解决什么问题:像“7.48E+17”这样的格式还是字符串?
如果格式问题:as,那么,据我所知,像“7.48E+17”这样的格式是 Excel 的问题(如果您使用它)。此外,Excel 对单元格的长度有限制(请看here)
我试过用浮点格式保存 csv,没关系。我使用了 quoting: 据我了解,它可以帮助您将所有非数字值转换为字符串。
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')
【讨论】:
以上是关于Pandas.to_csv() 十进制参数的主要内容,如果未能解决你的问题,请参考以下文章