简体   繁体   English

如何在 For 循环中创建多个数据框

[英]How to Create Multiple Data Frames in For Loop

I have a list of names (I changed them to letters) that correspond with values in a data frame column.我有一个与数据框列中的值相对应的名称列表(我将它们更改为字母)。

names = ['A','B','C','D','E','F','G','H']

I am trying to create a separate data frame for each name containing that name's associated QTY grouped by part number.我正在尝试为每个名称创建一个单独的数据框,其中包含按部件号分组的该名称的关联数量。

for x in names:
    name_data = data[data['Name']== x]
    name_dict = name_data.groupby(['Part No.']).Quantity.sum().to_dict()
    df1= pd.DataFrame.from_dict(name_dict, orient = 'index',columns = ['QTY'])

As you can see from the code each time it loops it writes the new loop data over the previous loop's data in df1.正如您在每次循环时从代码中看到的那样,它会将新的循环数据写入 df1 中前一个循环的数据。 How to I iterate a new data frame name each time it loops, so that I end of with 8 separate data frames?如何在每次循环时迭代一个新的数据框名称,以便以 8 个单独的数据框结束?

You could save the dataframes to a list :您可以将数据框保存到list

list_of_dfs = list()

for x in names:
    df = data[data['Name'].eq(x)].groupby('Part No.')['Quantity'].sum().rename("QTY").to_frame()
    list_of_dfs.append(df)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM