如何在 Python 中的 for 循环的每次迭代中创建一个新的数据帧

use*_*836 1 python pandas python-3.6

单击此处查看图像

#### 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))
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

#

因为我正在创建一个数据框 df ,但我希望数据框名称为 df_0, df_1, df_2 ......................... df_n

在每次迭代中,我都想创建一个新的数据框,如何?

而我的计数 = 22,这意味着我的循环将运行 22 次。

有没有办法将所有数据帧水平连接为单个 dta 帧

14、15、16(来自第一张)、14A、15A、16A(来自第二张)、14B、15B、16B、(来自第三张)作为 col1、col2、col3、col4........ ………………

感谢你的帮助

bak*_*kka 11

你应该提出你的问题,这样其他人才能从这个网站上获得最大的优势。

我将尝试为这个问题提出解决方案。

在每次迭代中,我都想创建一个新的数据框,如何?

这个想法是将数据帧存储为字典的值。

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])
Run Code Online (Sandbox Code Playgroud)

您可以通过调用访问数据帧dict_of_df[key],其中key = "df_1", "df_2", ... , "df_22"

现在你有很多数据框,你想连接,使用 pandas.concat()

如果你想在那之后重命名列,只需写 complete_df.columns = ['col1', 'col2', 'col3', ...]