使用'.format()'类似物在Python中分配变量

时间:2019-03-30 16:57:39

标签: python

我有一个数据集,其中有几列我希望将其从分类dtype转换为数字dtype。

我定义了以下功能:

def create_num_column(df,column):
    df[str(column)]=df[str(column)].astype('category')
    df[str(column)+'_cat']=df[str(column)].cat.codes

    dictionary{}.format(str(column)+'_cat')=dict(zip(df[column],df[str(column)+'_cat']))
    return dictionary{}.format(str(column)+'_cat')

我还希望该函数创建字典,这样我就能了解将哪个标签分配给哪个值。

这里的问题是由于我试图使用'。format()'命名字典而引起的,并且显示出语法错误。

  

dictionary {}。format(str(column)+'_ cat')= dict(zip(df.column,df [str(column)+'_ cat']))

     

> SyntaxError:语法无效

我知道这个特定的方法适用于字符串,但是有什么方法可以“自动化”变量的命名?

谢谢。

1 个答案:

答案 0 :(得分:0)

您不能“动态”命名变量,因此无需这样做。只需返回字典:

def create_num_column(df,column):
    df[str(column)]=df[str(column)].astype('category')
    df[str(column)+'_cat']=df[str(column)].cat.codes

    return dict(zip(df.column,df[str(column)+'_cat']))

(有一种方法可以在Python中用动态名称创建变量或更一般的对象,但这很少有用。)