繁体   English   中英

从多个Excel模板文件创建熊猫数据库-Python 3

[英]Creating pandas database from multiple excel template files - python 3

我下面的代码可以工作,但是我是python的新手,感觉应该有更好的方法...

公司在Excel模板中填写了有关其员工人数的统计信息,因此每次文件的格式都完全相同。

大约有150个单独的文件,它们都是Excel(.xls格式,我不确定为什么,但是我没有参与发送这些文件!)。 所需的数据存储在单个单元格中:

单元格C6 =公司名称,单元格C13 =职位数量等

我要为每个文件创建一行,因此我的标题是

文件名| 名称| 工作| 等| 等等

我创建了一个空列表,并将每个新文件值附加到列表中,然后创建了字典并转换为数据框

all_files = []
all_name = []
all_jobs_current = []
#etc (approx 10 more)

for f in glob.glob('**/*.xls'):
    CF = xlrd.open_workbook(f)
    sheet = CF.sheet_by_name('Confirmation form')
    name = sheet.cell(5,2).value #cell C6
    jobs_current = sheet.cell(12,2).value #cell C13
    #etc

    all_files.append(f)
    all_name.append(name)
    all_jobs_current.append(jobs_current)
    #etc

d = {'Filename': all_files,
     'Name': all_name,
     'Jobs': all_jobs_current}
     #etc

df = pd.DataFrame(d)

编辑1:我尝试更新以下反馈(我接受,我可能写错了),但出现以下错误: 不可哈希类型:列表

dcell = {'Name': (5,2),
         'Jobs': (12,2)}
dlist = {k: [] for k in list(dcell.keys())}

for f in glob.glob('**/*.xls'):
    for k, v in dlist.items():
        CF = xlrd.open_workbook(f)
        sheet = CF.sheet_by_name('Confirmation form')
        dlist[v].append(sheet.cell(*dcell[k]).value)

看起来像是一部字典的工作:

dcell = {'name': (5,2), 'jobs_current': (12,2) ... }
dlist = {k: [] for k in list(dcell.keys())}

for k, v in dlist.items():
    dlist[k].append(sheet.cell(*dcell[k]).value)

您仍然需要遍历文件并自行创建该文件列表,但是您可以将该列表合并到dlist

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM