Home > Back-end >  How to name subsets of a dataframe inside a loop
How to name subsets of a dataframe inside a loop

Time:02-14

I'm having trouble naming the subsets I create inside a loop. I want to give each one the five first letters of the condition (or even just the iteration number) as a name but I haven't figured out how to.

Here's my code

list_mun=list(ensud21.NOM_MUN.unique())
for mun in list_mun:
    name=ensud21[ensud21['NOM_MUN']== mun]

list_mun is a list with the unique values that a column of my dataframe can take. Inside the for loop I wrote name where I want what I explained before. I am unable to give each dataframe a different name. Thankyou!

CodePudding user response:

You shouldn't try to set variable names dynamically. Use a container, a dictionary is perfect here:

list_mun=list(ensud21.NOM_MUN.unique())

out_dic = {}
for mun in list_mun:
    # here we set "mun" as key
    out_dict[mun] = ensud21[ensud21['NOM_MUN']== mun]

Then subsets with:

out_dic[the_mun_you_want]
  • Related