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

如何用pandas.read_html正确读取GitHub上分号分隔的winequality-white.csv?

解决pandas.read_html读取GitHub CSV页面的格式问题

问题原因

GitHub展示CSV文件的页面中,每一行CSV内容是以单个单元格的形式嵌入在HTML表格里的,而非按列拆分。你之前用的thousands=";"参数是用于处理千位分隔符的,和字段分隔无关,因此无法正确解析分号分隔的数据。

修正方案

读取HTML表格后,手动拆分单元格内的分号分隔字符串,重新构造正确的DataFrame:

完整代码

import pandas as pd

# 读取GitHub页面的原始表格
df_raw = pd.read_html(
    "https://github.com/shrikant-temburwar/Wine-Quality-Dataset/blob/master/winequality-white.csv",
    header=0
)[0]

# 1. 提取并处理表头:移除引号,按分号拆分
header_raw = df_raw.columns[1].replace('"', '')
columns = header_raw.split(';')

# 2. 提取数据列,按分号拆分每行内容
data_series = df_raw.iloc[:, 1].dropna()  # 丢弃空行
wine_df = data_series.str.split(';', expand=True)

# 3. 设置表头并转换数据类型
wine_df.columns = columns
wine_df = wine_df.apply(pd.to_numeric, errors='coerce')

# 查看处理后的数据
print(wine_df.head())

代码解释

  • 读取HTML表格时无需设置thousands参数,该参数不适用当前场景。
  • 原始表格的第二列(索引1)包含所有CSV行数据,通过str.split(';', expand=True)将每行拆分为多列。
  • 最后用pd.to_numeric将所有列转换为数值类型,保证后续分析可用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 12:35:28