Python 如何在不增加数据量的情况下将分类变量转换为数值变量?

Python 如何在不增加数据量的情况下将分类变量转换为数值变量?,python,pandas,Python,Pandas,我试图使用get_dummies()将分类数据转换为数字,但是数据的大小从1 X 1增加到1 X 22,因为有22个不同的分类变量 我使用了熊猫的get_dummies() 代码: data['program_id'].unique() cols_to_transform = data['program_id'].loc[:] df_with_dummies = pd.get_dummies( data=cols_to_transform ) 如何在不增加数据大小的情况下将列的分类数据转换

我试图使用
get_dummies()
将分类数据转换为数字,但是数据的大小从
1 X 1
增加到
1 X 22
,因为有22个不同的分类变量

我使用了熊猫的
get_dummies()

代码:

data['program_id'].unique()

cols_to_transform = data['program_id'].loc[:]

df_with_dummies = pd.get_dummies( data=cols_to_transform )
如何在不增加数据大小的情况下将列的分类数据转换为数字

截图:

您可以使用
因子分解

df['columns']=pd.factorize(df['columns'])[0]#df.columns.astype('category').cat.codes

或者
LabelEncoder
sklearn

您可以使用
factorize

df['columns']=pd.factorize(df['columns'])[0]#df.columns.astype('category').cat.codes
LabelEncoder
from
sklearn