我有一个数据集,其中有几列我希望将其从分类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:语法无效
我知道这个特定的方法适用于字符串,但是有什么方法可以“自动化”变量的命名?
谢谢。
答案 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中用动态名称创建变量或更一般的对象,但这很少有用。)