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

如何使用Pandas DataFrame提取维基百科表格中的指定单列数据

问题修正方案

你代码存在以下几个可直接定位的问题:

  • 未定义headers变量:调用requests.get时传入了未赋值的headers参数会触发变量未定义报错,且这行请求代码实际未被后续逻辑使用
  • 未提取pd.read_html返回的表格对象:pd.read_html匹配到符合条件的表格后会返回一个列表,需要取列表第一个元素才能得到存储表格数据的DataFrame,原代码未给df赋值就直接调用df.iloc属于变量未定义错误
  • 未指定提取第一列:直接打印整个DataFrame自然会输出全表内容,单独提取对应股票代码的Symbol列即可

可直接运行的修正代码

import pandas as pd

url = "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies"
# 读取目标表格,取返回列表的第一个元素得到DataFrame
tables = pd.read_html(url, attrs={'id': 'constituents'})
df = tables[0]
# 提取第一列股票代码数据
stock_symbols = df['Symbol']
print(stock_symbols)
# 导出到本地文件可取消注释下一行
# stock_symbols.to_csv('Stock_List.txt', index=False, encoding='utf-8')

如果遇到请求被拦截的情况,可补充请求头后再解析:

import requests
import pandas as pd

headers = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
url = "https://en.wikipedia.org/wiki/List_of_S%26P_500_companies"
r = requests.get(url, headers=headers)
tables = pd.read_html(r.text, attrs={'id': 'constituents'})
df = tables[0]
stock_symbols = df['Symbol']
print(stock_symbols)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 19:54:03