pandas.read_html不支持小数逗号

Pab*_*blo 7 python decimal pandas xlm

我正在使用xlm文件pandas.read_html并且工作几乎完美,问题是该文件使用逗号作为十进制分隔符而不是点(默认值read_html).

我可以轻松地在一个文件中用点替换逗号,但我有近200个具有该配置的文件.与pandas.read_csv您可以定义小数点分隔符,但我不知道为什么pandas.read_html你只能定义千个分隔符.

在这个问题的任何指导?,还有另一种方法可以在大熊猫开放之前自动进行逗号/点替换吗?提前致谢!

sig*_*rdb 18

直到我同时使用小数 =',' 和千位 =',这才开始对我有用。

熊猫版本:0.23.4

所以尝试同时使用十进制和千位:即: pd.read_html(io="http://example.com", decimal=',', thousands='.')

在我只使用decimal=','之前,数字列将被保存为str类型,数字只是省略逗号。(奇怪的行为)例如0,7将是“07”而“1,9”将是“19”

它仍然以 str 类型保存在数据框中,但至少我不必手动输入点。数字显示正确;0,7 -> "0.7"

  • 这对 pandas 版本 1.1.2 也有帮助:当我添加 `thousands='.'` 时,小数参数起作用了 (2认同)

Pab*_*blo 2

谢谢@zhqiat。我认为升级pandas版本0.19可以解决问题。不幸的是我找不到一个简单的方法来实现这一点。我找到了一个升级 Pandas 的教程,但适用于ubuntu(winXP 用户)。

我最终选择了解决方法,使用此处发布的方法,基本上将所有列一一转换为数字类型pandas.Series

result[col] = result[col].apply(lambda x: x.str.replace(".","").str.replace(",","."))
Run Code Online (Sandbox Code Playgroud)

我知道这个解决方案不是最好的,但是有效。谢谢