Как создать новый фрейм данных с каждой итерацией цикла for в Python - PullRequest
0 голосов
/ 25 сентября 2018

Нажмите здесь, чтобы увидеть изображение

#### the data is inverted #######

#### To bring back to its original position ####### 
   df_1= df_i.iloc[::-1]

#### Set index again ###################
df_1.index = range(len(df_1.index))

введите описание изображения здесь

#

В течение я создаю фрейм данных df,Но я хочу, чтобы имя фрейма данных было df_0, df_1, df_2 .......................... df_n

На каждой итерации Iхотите создать новый фрейм данных, как?

И мой счет = 22, это означает, что мой цикл будет выполняться 22 раза.

Есть ли способ, которым я объединяю горизонтально все фреймы данных какодин кадр dta

14, 15, 16 (с первого листа), 14A, 15A, 16A (со второго листа), 14B, 15B, 16B (с третьего листа) как col1, col2, col3,col4 .......................

Ценю вашу помощь

1 Ответ

0 голосов
/ 26 сентября 2018

Вы должны составить свой вопрос, чтобы другие люди получили максимальное преимущество от этого сайта.

Я постараюсь предложить решение этого вопроса.

На каждой итерации 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', ...]

...