如何将CSV中存储的HTML表格字符串转换为可索引的DataFrame?
解决方法
你的问题出在pd.read_html()的返回值上——它会返回一个包含所有解析到的表格的DataFrame列表,而不是单个DataFrame,所以直接赋值的HTML_DF其实是列表,自然没法直接按列名索引。
最优实现步骤:
- 读取CSV文件,提取目标字段中的HTML字符串
- 用
pd.read_html()解析HTML,从返回的列表中取出第一个(也是唯一的)DataFrame - 此时得到的DataFrame就支持直接通过列名访问数据
修正后的代码:
import pandas as pd # 读取CSV文件 CSV_File = pd.read_csv(csv_file, index_col=None, header=0) # 提取HTML字符串 HTML = CSV_File['HTML_Data'][0] # 解析HTML表格,取列表中的第一个DataFrame HTML_DF = pd.read_html(HTML)[0] # 现在可以直接引用列 print(HTML_DF['Drink'])
补充说明:
- 你的HTML末尾的
</div>属于多余标签,pd.read_html()会自动忽略这类不影响表格结构的无效标签,无需手动处理 - 如果你的HTML中包含多个表格,只需要根据表格位置调整列表索引(比如
[1]取第二个表格)
内容的提问来源于stack exchange,提问作者Phil
相关产品推荐
相关产品推荐

