2017-07-15 79 views
1

我有一个像如何创建大熊猫在一个循环内动态的变量名

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

我需要建立一套4另据帧一数据帧。我遍历并希望指定内环数据帧dynamicall的名字一样

i=1 
while i<=4: 

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

它给我,

SyntaxError: can't assign to operator

我怎么创建数据帧的动态字符串变量/名称。

回答

3

我认为最好是创建对象的dict - 看到转换How do I create a variable number of variables?

您可以使用DataFramesdictgroupby对象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 
1

您可以使用数据框列表:

dataframe = [] 
dataframe.append(None) 

group = org_dataframe.groupby('month') 

for n,g in group: 
    dataframe.append(g) 

dataframe[1] 

输出:

month dest 
0  1 a 
1  1 bb 

dataframe[2] 

输出:

month dest 
2  2 cc 
3  2 dd