6

I have a dataframe like

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

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

It gives me,

SyntaxError: can't assign to operator

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

2 Answers 2

6

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

Another solution:

for i, x in df.groupby('month'):
    globals()['dataframe' + str(i)] = x

print (dataframe1)
   month dest
0      1    a
1      1   bb
Sign up to request clarification or add additional context in comments.

1 Comment

Looking to use this in something similar - but my month is a datetime 2020-03-01 and so on. Struggling to see what my created dataframe will be called as print (dataframe2020-03-01) give me an error. Thanks. But that suggestion below solves that....should've read on.
3

You can use a list of dataframes:

dataframe = []
dataframe.append(None)

group = org_dataframe.groupby('month')

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

dataframe[1]

Output:

   month dest
0      1    a
1      1   bb

dataframe[2]

Output:

   month dest
2      2   cc
3      2   dd

2 Comments

I am curiuous, what is your avatar? ATM?
@jezrael The college I attended here in United States. Texas A&M University which logo looks like aTm.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.