我有一个像

month  dest
1       a
1       bb
2       cc
2       dd
3       ee
4       bb

我需要创建一个设置为4的另一个数据框。我正在循环并希望在循环内分配dataframe dynamicall的名称,例如
i=1
while i<=4:

    dataframe+str(i)=org_dataframe.loc[org_dataframe['month'] == i]
    i=i+1

它给了我,



如何创建动态字符串变量/数据帧的名称。

最佳答案

我认为最好的方法是创建对象的dict-请参见How do I create a variable number of variables?

您可以通过将 dict 对象转换为DataFrames来使用groupbydict:

d = dict(tuple(df.groupby('month')))
print (d)
{1:    month dest
0      1    a
1      1   bb, 2:    month dest
2      2   cc
3      2   dd, 3:    month dest
4      3   ee, 4:    month dest
5      4   bb}

print (d[1])
   month dest
0      1    a
1      1   bb

另一个解决方案:
for i, x in df.groupby('month'):
    globals()['dataframe' + str(i)] = x

print (dataframe1)
   month dest
0      1    a
1      1   bb

关于python - 如何在 Pandas 循环内创建动态变量名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45114945/

10-15 08:49