解析存储为文本的数字,逗号为十进制,点为千位
Posted
技术标签:
【中文标题】解析存储为文本的数字,逗号为十进制,点为千位【英文标题】:Parsing numbers stored as text with comma as decimal and dot as thousands 【发布时间】:2019-06-05 18:05:50 【问题描述】:我有一个 Excel 文件要与 pandas 一起导入,其列存储为文本。需要注意的是,此文本是法语/拉丁语约定下的小数(基数)和千位数字,因此通过让 pandas 推断其类型,它会带来一个文本列,就像它在原始文件中呈现的那样:
NUMBER
0 23.639.826,11
1 92.275,00
2 1.917.000,00
8 2.409,02
9 13.501,00
Name: NUMBER, dtype: object
如何让 pandas 将此文本转换为正确的浮点格式,而无需对 Excel 文件本身进行转换或应用字符串方法来替换逗号和点?
NUMBER
0 23639826.11
1 92275.00
2 1917000.00
8 2409.02
9 13501.00
按照docs 的建议,我尝试在使用pd.read_excel
读取文件时使用thousands='.'
参数无济于事,并且使用pd.to_numeric
输出ValueError
,因为它无法解析字符串。
【问题讨论】:
用替换检查 【参考方案1】:试试df=pd.read_excel(filename, decimal=',', thousands='.')
【讨论】:
这个解决方案对我有用,但它必须是decimal
和 thousands
。请问你是怎么知道十进制kwarg的?
我不知道您也可以在此方法中使用decimal
参数,因为官方文档没有列出它。很高兴知道这比我以前想象的要容易,谢谢!以上是关于解析存储为文本的数字,逗号为十进制,点为千位的主要内容,如果未能解决你的问题,请参考以下文章