首页 > 解决方案 > 将包含表格的 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)

我会很感激你的帮助。

标签: pythonhtmlpandasdataframeappend

解决方案


您的问题可能是该df.append(df_temp)函数没有将数据附加到原始数据框。您需要将其再次保存到自己的变量中,例如:df = df.append(df_temp)

所以我有点惊讶你说你的第一个例子有效?请注意,您正在做一些非常相似的事情,但此外,您只是将第二个数据框写入带有df1.to_excel().


推荐阅读