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
fromsklearn