Question: ```
for key in CatDict:
    CatName = CatDict[key]['name']
    print('This is the ' + CatName + 'info')
    **Problem Area (CatName + 'DF')** = CalcDF[CalcDF.Cat == CatDict[key]['number']]

```

Basically what I am trying to do is create a new dataframe that is named by concatenating 'CatName' with the string 'DF' for every iteration of this loop.

I have been having a lot of trouble with that and I am not sure if what I am trying to do is feasible.

The dataframes are already formed outside the for loop I am just doing this to assign them the data that I want

Thank you

Answer: 
You are trying to create variable variable names. This is not recommended. Rather you could create a [dictionary](https://stackoverflow.com/a/1373185/11380795) of dataframes with their variable names as keys:

```
dataframes = {key[‘name’] + 'DF': CalcDF[CalcDF.Cat == CatDict[key]['number']] for key in CatDict}

```
You may utilize the built-in function [exec](https://docs.python.org/3/library/functions.html#exec) as:

```
for key in CatDict:
CatName = CatDict[key]['name']
print('This is the ' + CatName + 'info')
exec('{}DF = CalcDF[CalcDF.Cat == CatDict[key]['number']]'.format(CatName)) 

```