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

时间:2018-09-25 16:26:57

标签: python pandas python-3.6

Click here to see image

request.getParameter("invoiceNo")

enter image description here

因为我正在创建数据帧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 ...... .................

感谢您的帮助

1 个答案:

答案 0 :(得分:2)

您应该弥补您的问题,以便其他人可以从该站点获得最大的利益。

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

  

我想在每次迭代中创建一个新的数据框,怎么做?

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

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', ...]