在Python 3.6.0中使用xlrd解析Excel文件

问题描述

我正在使用 Python(3.6.0),xlrd(1.2.0) Pandas(0.25.3)解析一些 excel文件 >,我的最终目标是提取文档集合的信息(https://www.sepe.es/HomeSepe/que-es-el-sepe/estadisticas/datos-avance/datos.html,该抓取工具已经编码)作为有用的 DataFrame 以便进行分析。我正在虚拟环境中的Mac OS High Sierra中工作。

我尚无法解决的主要问题是如何以一种有用的方式提取信息,excel文件的结构各不相同,并且行和列为空。

例如: [![其中一份文件的清单] [1]] [1] [1]:https://i.stack.imgur.com/y3Msv.png

我的最后一次尝试是寻找数据组(对于所有文档,每张纸的每个单元格都使用sheet.cell_value(row,col)),在上部单元格上带有字符串,而在其他单元格上则带有数值数据,但是我发现这不切实际。

还有其他软件包或方法可以轻松,快速地完成此工作吗? 我只要它可以自动执行该过程,就不介意使用另一种编程语言(R,C,C ++,Java,JavaScript)

请在此处包括我正在处理的部分代码,准确地说,是从数组直接转换为无效的DataFrame。

import xlrd
import pandas as pd

ROUTE_IN = '../Tests/downloaded_files/'
NUMBER_OF_DOCUMENTS = 2 # if < 0 => take all documents

if __name__ == '__main__':

    list_documents = os.listdir(ROUTE_IN)
    list_documents = [ROUTE_IN + file for file in list_documents]

    if NUMBER_OF_DOCUMENTS < 0:
        sample = list_documents
    else:
        sample = list_documents[:NUMBER_OF_DOCUMENTS]

    for excel_file_route in sample:

        document = xlrd.open_workbook(excel_file_route)
        # separate it in sheets
        sheet_names = document.sheet_names()

        for i in range(len(sheet_names)):
            
            sheet = document.sheet_by_index(i)
            number_rows = sheet.nrows
            number_cols = sheet.ncols

            # Read sheet
            possible_@R_247_4045@ion = []

            for row in range(number_rows):
                data_column = []
                for col in range(number_cols):    
                    data_column.append(sheet.cell_value(row,col))

                possible_@R_247_404[email protected](data_column)

            print(pd.DataFrame(possible_@R_247_4045@ion))
            print('\n ............. \n')

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)