Вы должны составить свой вопрос, чтобы другие люди получили максимальное преимущество от этого сайта.
Я постараюсь предложить решение этого вопроса.
На каждой итерации Iхотите создать новый фрейм данных, как?
Идея состоит в том, чтобы хранить фреймы данных в качестве значений словаря.
cnt = 22 # your loop
dict_of_df = {} # initialize empty dictionary
for i in range(0,22):
newname = df_sheetnames['col'].values[i]
dict_of_df["df_{}".format(i)] = pd.read_excel('DATA.xlsx', sheetname=newname, skiprows=6, usecols=[14,15,16])
Вы можете получить доступ к фреймам данных, позвонив по номеру dict_of_df[key]
где key = "df_1", "df_2", ... , "df_22"
Теперь у вас есть много фреймов данных, и вы хотите выполнить конкататацию, используйте pandas.concat()
Если вы хотите после этого переименовать столбцы, просто напишите complete_df.columns = ['col1', 'col2', 'col3', ...]