如何在forloop中创建多个数据框?

时间:2020-10-14 13:33:37

标签: python pandas dataframe

我想使用forloop创建多个数据框

这是我到目前为止所做的

for x in df['Area'].unique():
    cousines=[]
    for i in Cousines:
        index = df[df['Area']==x].index
        df_x = df.loc[index]
        Rating_mean = df_x[df_x['Cousines'].str.contains(i)]['Rating'].mean()
        dict1={'Cousines':i,'Rating':Rating_mean}
        cousines.append(dict1)
    x = pd.DataFrame(cousines)

问题是当我使用x创建数据框时,它没有将其用作forloop变量 而且我不知道如何使用x作为DataFrame的名字

2 个答案:

答案 0 :(得分:0)

每次创建df时,将其添加到列表中:

dfs = []
for x in df['Area'].unique():
    cousines=[]
    for i in Cousines:
        index = df[df['Area']==x].index
        df_x = df.loc[index]
        Rating_mean = df_x[df_x['Cousines'].str.contains(i)]['Rating'].mean()
        dict1={'Cousines':i,'Rating':Rating_mean}
        cousines.append(dict1)
    dfs.append(pd.DataFrame(cousines))

答案 1 :(得分:0)

半个小时后!

因此,在互联网上漫游后,我找到了完美的答案。 这可能对某些人有帮助。

df_dic={}
for x in df['Area'].unique(): 
    index = df[df['Area']==x].index
    df_x = df.loc[index]
    
    cousines=[]
    for i in Cousines:
        
        Rating_mean = df_x[df_x['Cousines'].str.contains(i)]['Rating'].mean()
        dict1={'Cousines':i,'Rating':Rating_mean}
        cousines.append(dict1)

    df_dic["{0}".format(x)]=pd.DataFrame(cousines)

现在,df_dict['Area_name']获取Area_name数据框

df_dic['Alkapuri']
    Cousines      Rating
0   NorthIndian 3.961290
1   FastFood    3.811111
2   Chinese     3.922222
3   Beverages   3.992308
4   Pizza       3.592308
5   Italian     3.890000
6   Desserts    4.033333
7   StreetFood  4.260000
8   Cafe        3.866667
9   Gujarati    3.966667
相关问题