Ниже представлен макет с использованием четырех таблиц:

Я хочу прочитать лист Excel, прочитайте первый столбец (дата) и столбец с определенным заголовком (в данном случае d) из каждой из 12 таблиц. Затем я хочу переименовать столбец d, чтобы теперь он был месяцем соответствующей таблицы. Наконец, я хочу объединить каждый новый фрейм данных в первом столбце.
То есть, используя данные в столбцах с пометками «дата» и «d» (см. изображение выше), я хотите, чтобы конечный результат выглядел так:

Поскольку я знаю диапазон ячеек для каждой таблицы, я смог использовать следующий код для чтения первой таблицы, а затем просто скорректировал диапазон, чтобы он соответствовал другим таблицам. См. ниже:
Код: Выделить всё
df1 = pd.read_excel('filename.xlsx', sheet_name='sheet', nrows=31, usecols='B,F')
new_name = str(pd.read_excel('filename.xlsx', sheet_name='sheet', nrows=0, usecols='A'))
df1.rename(columns={'d': new_name}, inplace=True)
Код: Выделить всё
df2 = pd.read_excel('filename.xlsx', sheet_name='sheet', nrows=31, usecols='J,N')
new_name = str(pd.read_excel('filename.xlsx', sheet_name='sheet', nrows=0, usecols='I'))
df2.rename(columns={'d': new_name}, inplace=True)
У меня есть следующий код для объединения данных в конце:
Код: Выделить всё
#Merge all dataframes
df_merged = reduce(lambda left,right: pd.merge(left,right,on=['date'],
how='outer'), dfs).fillna(0)
Подробнее здесь: https://stackoverflow.com/questions/791 ... xcel-sheet
Мобильная версия