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

使用pd.read_html解析维基表格后调用head()报AttributeError求助

解决pd.read_html返回列表导致AttributeError: 'list' object has no attribute 'head'的问题

问题本质

pd.read_html()方法始终返回一个包含DataFrame对象的列表——即便你通过match参数精准匹配到唯一表格,它也会把这个表格放在列表中返回。直接对列表调用.head()方法会触发AttributeError,因为Python列表没有这个DataFrame专属方法。

解决方案

提取列表中的目标DataFrame(通常是索引为0的元素,即match匹配到的第一个表格),再调用.head():

修改后的完整代码

import pandas as pd
url="https://uk.wikipedia.org/wiki/%D0%9D%D0%B0%D1%81%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8F_%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D0%B8#%D0%9D%D0%B0%D1%80%D0%BE%D0%B4%D0%B6%D1%83%D0%B2%D0%B0%D0%BD%D1%96%D1%81%D1%82%D1%8C"
# 直接提取列表中的第一个DataFrame
df = pd.read_html(url, match="Коефіцієнт народжуваності в регіонах України", thousands=".", decimal=",")[0]
# 正常查看表格头部
df.head()

备选写法(保留原变量名)

如果想保留原始列表变量,可分两步处理:

import pandas as pd
url="https://uk.wikipedia.org/wiki/%D0%9D%D0%B0%D1%81%D0%B5%D0%BB%D0%B5%D0%BD%D0%BD%D1%8F_%D0%A3%D0%BA%D1%80%D0%B0%D1%97%D0%BD%D0%B8#%D0%9D%D0%B0%D1%80%D0%BE%D0%B4%D0%B6%D1%83%D0%B2%D0%B0%D0%BD%D1%96%D1%81%D1%82%D1%8C"
syte = pd.read_html(url, match="Коефіцієнт народжуваності в регіонах України", thousands=".", decimal=",")
# 提取列表中的第一个DataFrame
syte_df = syte[0]
# 调用head()
syte_df.head()

额外提示

若不确定匹配到多少个表格,可通过len(syte)查看列表长度,再根据索引选择对应的DataFrame。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 15:20:22