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

如何将pd.read_html返回的列表转换为Pandas DataFrame?

解决Pandas read_html返回列表而非DataFrame的问题

嘿,这个问题我碰到过好多次啦!其实pd.read_html()本身的设计就是返回一个包含DataFrame的列表——哪怕页面里只有一个表格,它也会把这个表格包装成列表的唯一元素返回给你。

你现在的代码里,df = pd.read_html(str(table))得到的是列表,只需要做一步简单的索引提取,就能拿到你想要的DataFrame了:

修正后的完整代码

import pandas as pd
import requests
from bs4 import BeautifulSoup

res = requests.get("http://www.nationmaster.com/country-info/stats/Media/Internet-users")
soup = BeautifulSoup(res.content,'html5lib')
table = soup.find_all('table')[0]
# 提取列表的第一个元素,得到目标DataFrame
df = pd.read_html(str(table))[0]
df.head()

额外小提示

  • 如果你不确定列表里有几个表格,可以先打印len(pd.read_html(str(table)))看看数量,再根据需求提取对应索引的元素
  • 因为你已经用BeautifulSoup精准定位到了第一个表格,所以直接取索引[0]就完全没问题啦

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 08:04:00