本文介绍了如何在 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
它给了我
如何创建动态字符串变量/数据帧名称.
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?
您可以通过转换 groupby
指向dict
的对象:
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 循环内创建动态变量名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!