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

使用Pandas read_html爬取fbref表格存CSV遇报错求助

解决Pandas read_html爬取数据存CSV的问题

问题根源

pd.read_html()方法会返回页面中所有表格对应的DataFrame对象列表,而非单个DataFrame。直接对列表调用to_csv()会触发'list' object has no attribute 'to_csv'错误;若直接将整个列表转为DataFrame,会因嵌套结构不符合二维要求报错。

解决方案步骤

  • 先确认爬取到的表格数量:通过len(raw_data)查看列表长度,定位目标表格的索引
  • 提取列表中的单个DataFrame对象
  • 处理fbref表格常见的多层表头问题(避免CSV结构混乱)
  • 保存为CSV文件

修正后的完整代码

import pandas as pd

# 爬取页面所有表格,返回DataFrame列表
raw_data = pd.read_html('https://fbref.com/en/comps/Big5/Big-5-European-Leagues-Stats#big5_table')

# 查看表格数量,确认目标表格索引(示例中目标为第一个表格,索引0)
print(f"共获取 {len(raw_data)} 个表格")

# 提取目标DataFrame
df = raw_data[0]

# 合并多层表头为单层,避免CSV存储异常
df.columns = ['_'.join(col).strip() for col in df.columns.values]

# 保存为CSV,去除默认索引列
df.to_csv('Top_5.csv', index=False)

print("数据已保存为 Top_5.csv")
print(df.head())

关键说明

  • fbref的赛事统计表格通常带有多层表头,合并后能让CSV文件的列名更清晰,避免出现空值或嵌套列名
  • 若目标表格不是索引0的位置,可根据打印的表格数量调整索引值,比如raw_data[1]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 11:47:11