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

如何清理pd.read_html返回的非嵌套表格列表并转为可读DataFrame?

无需重新解析网站,用Pandas即可快速清理表格

1. 提取初始表格

首先读取网页表格并获取目标DataFrame:

import pandas as pd
url = "http://pitzavod.ru/products/upakovka/"
dfs = pd.read_html(url)
df = dfs[0]

2. 修复表头与清理冗余行

原表格的表头分为两行(索引0和1),合并表头并移除冗余行即可解决结构混乱问题:

# 合并列名,补充子表头信息
df.columns = [
    df.iloc[0, 0],
    f"{df.iloc[0, 1]} ({df.iloc[1, 0]})",
    df.iloc[0, 2]
]

# 删除前两行冗余的表头行,重置索引
df_cleaned = df.drop([0, 1]).reset_index(drop=True)

3. 最终效果

清理后的DataFrame结构清晰,可读性大幅提升:

ПоказателиМарка целлюлозы (ОСН)Методы испытаний
Механическая прочность при размоле в мельнице ...10 000 740 520ГОСТ13525.1 ГОСТ 13525.3 ГОСТ 13525.8
Степень делигнификации, п.е.28 - 45ГОСТ 10070
Сорность - число соринок в условной массе 500г...6500ГОСТ 14363.3
Влажность, % не более20ГОСТ 16932

可选优化:拆分多值列

如果需要将Марка целлюлозы (ОСН)列中的多个数值拆分,可以添加以下代码:

# 拆分多值为列表,或展开为独立列
df_cleaned["Марка целлюлозы (ОСН)"] = df_cleaned["Марка целлюлозы (ОСН)"].str.split()

# 可选:展开为多列
df_cleaned = df_cleaned.join(
    df_cleaned["Марка целлюлозы (ОСН)"].apply(pd.Series).rename(columns=lambda x: f"Значение_{x+1}")
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 09:40:25