首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将两个或多个相关但不同的特性组合为一个功能,并为该功能分配新值

如何将两个或多个相关但不同的特性组合为一个功能,并为该功能分配新值
EN

Stack Overflow用户
提问于 2021-06-14 07:58:12
回答 1查看 32关注 0票数 0
代码语言:javascript
复制
fuel_type= {'fuel_Petrol':1,'fuel_Diesel':2,'fuel_Electric':3,'fuel_LPG':4,'fuel_CNG':5}
df['fueltype']= df['fuel_Petrol','fuel_Diesel','fuel_Electric','fuel_LPG','fuel_CNG'].apply(lamda x: fuel_type(x))

我得到了这个错误:

代码语言:javascript
复制
 File "<ipython-input-31-b238d0a16f2d>", line 2
    df['fueltype']= df['fuel_Petrol','fuel_Diesel','fuel_Electric','fuel_LPG','fuel_CNG'].apply(lamda x: fuel_type(x))
                                                                                                      ^ SyntaxError: invalid syntax
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-14 08:26:02

如果您有一个值列,您希望使用字典对其进行编码,则应该使用:

代码语言:javascript
复制
fuel_type= {
    'fuel_Petrol':1,'fuel_Diesel':2,
    'fuel_Electric':3,'fuel_LPG':4,'fuel_CNG':5}

df = pd.DataFrame({
    'fuel_type': ['fuel_Petrol','fuel_Diesel',
                  'fuel_Electric','fuel_LPG','fuel_CNG']
})

df['fueltype'] = df['fuel_type'].apply(lambda  x: fuel_type[x])

print (df)

输出:

代码语言:javascript
复制
       fuel_type  fueltype
0    fuel_Petrol         1
1    fuel_Diesel         2
2  fuel_Electric         3
3       fuel_LPG         4
4       fuel_CNG         5

但是,当您有太多不同的值要编码时,这并不是推荐的方法。相反,使用下面的方式进行编码,这不需要我们手动创建字典。

代码语言:javascript
复制
df["fuel_type"] = df["fuel_type"].astype('category')
df["fueltype"] = df["fuel_type"].cat.codes
print (df)

输出:

代码语言:javascript
复制
       fuel_type  fueltype
0    fuel_Petrol         4
1    fuel_Diesel         1
2  fuel_Electric         2
3       fuel_LPG         3
4       fuel_CNG         0

sklearn还具有执行标签编码的功能。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67966696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档