如何在 pandas 循环内创建动态变量名 [英] How do I create dynamic variable names inside a loop in pandas

查看:56
本文介绍了如何在 pandas 循环内创建动态变量名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个类似的数据框

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

我需要创建一个设置为4个其他数据框的集合.我正在遍历,希望在循环内分配dataframe dynamicall的名称,例如

I need to create a set to 4 another dataframe. I am looping over and hope to assign name of dataframe dynamicall inside loop, like

i=1
while i<=4:

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

它给了我

SyntaxError:无法分配给运算符

SyntaxError: can't assign to operator

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

how do I create a dynamic string variable/name of dataframe.

推荐答案

我认为最好是创建对象的dict-请参见如何创建可变数量的变量?

I think the best is create dict of objects - see How do I create a variable number of variables?

您可以通过转换

You can use dict of DataFrames by converting groupby object to dict:

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

这篇关于如何在 pandas 循环内创建动态变量名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆