Мой код ниже работает, но я новичок в 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)