gpt4 book ai didi

python - 从多个 Excel 模板文件创建 pandas 数据库 - python 3

转载 作者:太空宇宙 更新时间:2023-11-03 21:31:12 25 4
gpt4 key购买 nike

我下面的代码可以工作,但我是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 中。

关于python - 从多个 Excel 模板文件创建 pandas 数据库 - python 3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53502941/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com