You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Pandas读取本地HTML转Dataframe时遇ValueError报错求助

Pandas读取HTML文件转DataFrame报ValueError的解决方法

报错原因

pd.read_html自动推断列数据类型时,误将包含浮点数格式字符串(如'0.5')的列识别为整数类型,导致转换失败,抛出ValueError: invalid literal for int() with base 10: '0.5'。

解决方案

1. 先以字符串类型读取所有列,后续按需转换

这种方法能避免自动推断的类型冲突,之后可手动处理目标列的类型:

# 读取所有表格,所有列按字符串类型加载
df_list = pd.read_html(loca_url, dtype=str)
# 取HTML中的第一个表格(若有多个表格,按需调整索引)
df = df_list[0]

# 示例:将某列转换为数值类型,无法转换的设为NaN
df['目标列名'] = pd.to_numeric(df['目标列名'], errors='coerce')

2. 指定特定列的数据类型

如果明确知道哪列引发问题,直接指定该列的类型为float或str:

df_list = pd.read_html(loca_url, dtype={'问题列名': float})
df = df_list[0]

3. 使用转换器处理目标列

通过converters参数自定义列的转换逻辑,灵活处理不同格式的数据:

# 对目标列进行转换,确保浮点数格式的字符串能正常转为数值
df_list = pd.read_html(loca_url, converters={'问题列名': lambda x: float(x) if x.strip() else None})
df = df_list[0]

内容的提问来源于stack exchange,提问作者Dini

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:40:20