How to create a new dataframe with every iteration of for loop in Python

折月煮酒 提交于 2019-12-23 06:13:07

问题


Click here to see image

#### 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))

enter image description here

#

In for I am creating a data frame df , But I want the data frame name as df_0, df_1, df_2 .......................... df_n

On every iteration I want create a new data frame, How?

And my count = 22, That means my loop will run for 22 times.

Is there a way that I concat horizontally all the data frames as a single dta frame

14, 15, 16 (from first sheet), 14A, 15A, 16A (from second Sheet), 14B,15B, 16B,(From Third sheet) as col1, col2, col3,col4.......................

Appreciate your help


回答1:


You should make up your question so that other people will get max advantage from this site.

I will try to propose solution to this question.

On every iteration I want create a new data frame, How?

The idea is to store the dataframes as values of a dictionary.

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])

You can access the dataframes by call dict_of_df[key], where key = "df_1", "df_2", ... , "df_22"

Now you have many dataframes and you want to concat, use pandas.concat()

If you want to rename the columns after that, simply write complete_df.columns = ['col1', 'col2', 'col3', ...]



来源:https://stackoverflow.com/questions/52502779/how-to-create-a-new-dataframe-with-every-iteration-of-for-loop-in-python

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!