python - 将包含表格的 html 文件列表解析为 Excel 工作表
问题描述
我正在尝试将每个包含表格的 html 文件列表解析为 Excel 工作表。我成功解析了两个 html 文件并附加了它们的结果数据框,如下所示:
import pandas as pd
#Read the first html and adjust header columns
df = pd.read_html(r'C:\Users\A.html')[0].transpose()
new_header = df.iloc[0]
df = df[1:]
df.columns = new_header
#Read the second html and adjust header columns
df1 = pd.read_html(r'C:\Users\B.html')[0].transpose()
new_header = df1.iloc[0]
df1 = df1[1:]
df1.columns = new_header
df.append(df1)
df1.to_excel(r'C:\Users\My Workbook.xlsx', sheet_name='Sheet 1', index = False)
但是,当我按如下方式添加循环时,附加不起作用:
import os
path = r'C:\Users'
# create a main dataframe object to append the other dataframes to
df = pd.read_html(r'C:\Users\A.html')[0].transpose()
new_header = df.iloc[0]
df = df[1:]
df.columns = new_header
#loop over the html files in the user path
with os.scandir(path) as it:
for entry in it:
if entry.name.endswith(".html") and entry.is_file():
df_temp = pd.read_html(entry.path)[0].transpose()
new_header = df_temp.iloc[0]
df_temp = df_temp[1:]
df_temp.columns = new_header
df.append(df_temp)
我会很感激你的帮助。
解决方案
您的问题可能是该df.append(df_temp)
函数没有将数据附加到原始数据框。您需要将其再次保存到自己的变量中,例如:df = df.append(df_temp)
。
所以我有点惊讶你说你的第一个例子有效?请注意,您正在做一些非常相似的事情,但此外,您只是将第二个数据框写入带有df1.to_excel()
.
推荐阅读
- c++ - CMake 项目:致命错误 LNK1104:无法打开文件 'boost_unit_test_framework-vc141-mt-x64-1_66.lib'
- html - 如何使用 CSS 淡化半图像
- python - 是否有任何函数可以替换python字符串中的变量?
- vb.net - VB.Net,无法在控件调用函数中捕获异常
- odata - OData $Expand 与 1-many 关系给出参数不匹配异常
- testing - 可以向我的站点发送大量并发请求进行测试的付费服务?
- python - 如何强制 python 类具有 CLASS 属性?(不是实例属性!!!)
- android - 如何在android的测试文件中获取在build.gradle中定义的变量?
- angular9 - 运行从 stackblitz 下载的项目
- linux - 如何使用一个 HTTP 1.1 请求下载多个文件