我们在实际的数据预处理的时候,经常需要对分类变量进行0-1编码,正如下图的属性列Fruit。
今天我们来介绍pandas中的get_dummies()方法,可以轻松实现0-1编码。
先构建一个简单的DataFrame
import pandas as pd
df = pd.DataFrame({'Integer Feature':[0,1,2,1],
'Fruit':['apple','banana','watermelon','banana']})
df
直接调用get_dummies()方法
new_df = pd.get_dummies(df)
可以看见,我们已经实现了对属性列Fruit的0-1编码。
思考:可以对数字变量进行0-1编码吗?
当然可以,但是需要对数字变量转换成字符变量,所以需要先进行类型转换,使用astype()方法。
df['Integer Feature'] = df['Integer Feature'].astype(str)
pd.get_dummies(df)
不要自我否定,你是最棒的!!!
对单独的一列进行01编码:
data_train = pd.get_dummies(data_train, columns=['f11'])