TL;DR : Use your own custom dictionary with the variable name as it's key - is the best practice.
What You Asked For
You can create a variable with a custom name by adding it to the globals dictionary.
import pandas as pd
rename = 'test'
df = pd.DataFrame({'num': [2, 4, 8, 0]})
# Creating a variable with a custom name by adding it to globals
globals()[f'df_{rename}'] = df
print(df_test)
How To Have a Variable With Custom Name - According to Best-Practices
Use your own dictionary to keep up with your custom variables.
import pandas as pd
rename = 'test'
df = pd.DataFrame({'num': [2, 4, 8, 0]})
# Creating a custom dictionary for the custom variables
my_dataframes = dict()
custom_variable_name = 'df_{rename}'
my_dataframes[custom_variable_name] = df
print(my_dataframes[custom_variable_name])