get_dummies的编码用法

one-hot
one-hot的基本思想:将离散型特征的每一种取值都看成一种状态 , 若你的这一特征中有N个不相同的取值 , 那么我们就可以将该特征抽象成N种不同的状态 , one-hot编码保证了每一个取值只会使得一种状态处于“激活态” , 也就是说这N种状态中只有一个状态位值为1 , 其他状态位都是0 。
pandas.get_dummies(data, prefix=None, prefix_sep='_', dummy_na=False, columns=None, sparse=False, drop_first=False)
参数说明:
data : array-like, , or
输入的数据
: , list of , or dict of ,None
转换后 , 列名的前缀
: list-like,None
指定需要实现类别转换的列名
: bool,False
增加一列表示空缺值 , 如果False就忽略空缺值
: bool,False

get_dummies的编码用法

文章插图
获得k中的k-1个类别值 , 去除第一个
1.新增列为one-hot形式
# change weekday to one-hot encoding , 将weekday转换成one-hot编码weekdaycols = ['weekday_' + str(i) for i in range(1,8)]tmpdf = pd.get_dummies(dfoff['weekday'].replace('nan', np.nan)) ##如果是nan , 则one——hot为0tmpdf.columns = weekdaycolsdfoff[weekdaycols] = tmpdf
转换前后增加列 , 如果值为nan,则one-hot数值全为0
2.利用增加列
【get_dummies的编码用法】dummies_Cabin = pd.get_dummies(data_test['Cabin'], prefix= 'Cabin')dummies_Embarked = pd.get_dummies(data_test['Embarked'], prefix= 'Embarked')dummies_Sex = pd.get_dummies(data_test['Sex'], prefix= 'Sex')dummies_Pclass = pd.get_dummies(data_test['Pclass'], prefix= 'Pclass')df_test = pd.concat([data_test, dummies_Cabin, dummies_Embarked, dummies_Sex, dummies_Pclass], axis=1)