如何将虚拟变量添加到Pandas DataFrame?

我有一个名为data_df的数据框,看起来像这样:

   price vehicleType  yearOfRegistration    gearbox  powerPS  model  kilometer fuelType       brand notRepairedDamage  postalCode0  18300       coupe                2011    manuell      190    NaN     125000   diesel        audi                ja       669541   9800         suv                2004  automatik      163  grand     125000   diesel        jeep               NaN       904802   1500  kleinwagen                2001    manuell       75   golf     150000   benzin  volkswagen              nein       910743   3600  kleinwagen                2008    manuell       69  fabia      90000   diesel       skoda              nein       604374    650   limousine                1995    manuell      102    3er     150000   benzin         bmw                ja       33775

尝试将分类列(如vehicleType)转换为虚拟变量(“独热编码”):

columns = [ 'vehicleType' ] #, 'gearbox', 'model', 'fuelType', 'brand', 'notRepairedDamage' ]for column in columns:  dummies = pd.get_dummies(data_df[column], prefix=column)  data_df.drop(columns=[column], inplace=True)  data_df = data_df.add(dummies, axis='columns')

但原始数据丢失了:

  brand fuelType gearbox  kilometer model notRepairedDamage  ...  vehicleType_coupe  vehicleType_kleinwagen  vehicleType_kombi  vehicleType_limousine  vehicleType_suv  yearOfRegistration0   NaN      NaN     NaN        NaN   NaN               NaN  ...                NaN                     NaN                NaN                    NaN              NaN                 NaN1   NaN      NaN     NaN        NaN   NaN               NaN  ...                NaN                     NaN                NaN                    NaN              NaN                 NaN2   NaN      NaN     NaN        NaN   NaN               NaN  ...                NaN                     NaN                NaN                    NaN              NaN                 NaN3   NaN      NaN     NaN        NaN   NaN               NaN  ...                NaN                     NaN                NaN                    NaN              NaN                 NaN4   NaN      NaN     NaN        NaN   NaN               NaN  ...                NaN                     NaN                NaN                    NaN              NaN                 NaN

那么,如何用虚拟变量替换给定的列呢?


回答:

# 获取'vehicleType'列的独热编码one_hot = pd.get_dummies(data_df['vehicleType'])# 删除已编码的列data_df = data_df.drop('vehicleType',axis = 1)# 连接编码后的数据框data_df = data_df.join(one_hot)data_df 

Related Posts

Flatten and back keras

我正在尝试使用自编码器获取简单向量中的值 这是我的代码…

如何按索引访问PyTorch模型参数

如果我的网络有10层,包括偏置项,如何仅通过索引访问第…

Python中多元逻辑回归显示错误

我试图使用逻辑回归进行预测,并使用Python和skl…

在MACOS上安装NLTK

我在我的2015款Mac Pro上尝试安装NLTK,操…

如何在R中将通过RFE选择的变量插入到机器学习模型中?

我想使用递归特征消除方法来选择最重要的特征,然后将这些…

CountVectorizer 错误:ValueError: setting an array element with a sequence

我有一个包含144条学生反馈的数据集,其中有72条正面…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注