В моем предыдущем ответе я указал решение stati c, и в этом я добавил вспомогательную функцию для разбора динамического c. get_header_index
вспомогательная функция динамически получает индекс строки, содержащей ключевое слово header в первом столбце. Вы можете изменить аргумент col_index
, если считаете, что ключевое слово заголовка находится в другом столбце. Точно так же вы можете изменить ввод ключевого слова по своему усмотрению. Вывод dfs
- это словарь фреймов данных, где ключи - это имена листов данной рабочей книги.
import pandas as pd
def get_header_index(sheet, col_index=0, keyword='code'):
arr = sheet[sheet.columns[int(col_index)]]
header_index = arr[arr.str.contains(str(keyword), na=False)].iloc[[0,]].index[0]
return header_index
file = 'filename.xlsx'
sheets_dict = pd.read_excel(open(file, 'rb'), sheet_name=None)
dfs = {}
for name, sheet in sheets_dict.items():
header = get_header_index(sheet, col_index=0, keyword='code') + 1
df = pd.read_excel(open(file, 'rb'), sheet_name=name, header=header)
dfs[name] = df