Как объединить несколько выбранных листов из множества XL spredhseets - PullRequest
0 голосов
/ 10 марта 2020

Я относительно новичок в python и pandas и столкнулся со следующей проблемой: у меня более 20 электронных таблиц с несколькими листами. Я хотел бы объединить второй лист из каждой таблицы в одну таблицу. Я использую приведенный ниже код, который работает до такой степени, что создает список листов, но не объединяет их правильно, объединенный файл имеет единственный лист из первого файла. Каждый лист имеет одинаковую строку заголовка и одинаковую структуру.

Любая помощь приветствуется. Код, который я использую ниже:

import os
import glob
import pandas as pd
os.chdir(r"C:\Users\Site_Users")

extension = 'xlsx'
all_filenames = [i for i in glob.glob('*.{}'.format(extension))]


#combine all files in the list
xl_list=[]
for f in all_filenames:
    df=pd.read_excel(f, sheet_name = 1)
    xl_list.append(df)

combined = pd.concat(xl_list, ignore_index = True)

combined.to_excel( "combined.xlsx", index=False)

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

Просто чтобы закрыть l oop на этом. Я нашел ответ. Код был верным, но было несколько строк, которые выглядели пустыми, но в них были формулы, которые для кода выглядели как не пустые ячейки, поэтому он добавлял эти строки в объединенный лист. Из-за этого я пропустил добавленные строки, так как они были на 400 строк ниже пустых строк.

0 голосов
/ 10 марта 2020

Работая в предположении, что у вас есть список df, попробуйте добавить ось = 0 к вашему конкату.

т.е.

combined = pd.concat(xl_list, axis = 0, ignore_index = True)
...