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

Python使用pandas读取HTML表格后无法删除冗余列,仅保留指定4列如何解决?

问题原因

  • pandas 中droplevel、filter等数据处理方法默认不会修改原DataFrame,只会返回处理后的新对象,你的代码没有将处理结果赋值给变量,原始df没有被改动,打印时自然还是完整表格。
  • 你读取到的原始表格列是多层索引结构,droplevel处理后的列索引也没有同步到原df上,就算后续直接筛选原df的列,也无法匹配到单层的列名。

修正代码

import pandas as pd
import requests

url = 'https://www.hockey-reference.com/leagues/NHL_2022_goalies.html'
df_list = pd.read_html(url)
df = df_list[0]
# 将降层、筛选后的结果直接赋值给df,覆盖原始数据
df = df.droplevel(level=0, axis='columns').filter(['Rk', 'Player', 'SV%', 'QS%'])
# 可选:过滤掉表格中重复插入的表头行,避免后续数据类型报错
df = df[df['Rk'] != 'Rk'].reset_index(drop=True)
print(df)

补充说明

如果你不想改动原始的完整DataFrame,也可以将处理后的结果赋值给新变量,比如df_selected = df.droplevel(...).filter(...),后续使用df_selected做处理即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 13:54:03