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.
Use the for Loop to Create a Dynamic Variable Name in Python Along with the for loop, the globals() function will also be used in this method. The globals() method in Python provides the output as a dictionary of the current global symbol table.
“python automatically create variables” Code Answer'sglobals()[f"my_variable{i}"] = f"Hello from variable number {i}!"
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
                        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
                        If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With