python - 如何根据现有特征的标签创建新特征?
问题描述
我有一个带有 74 个不同标签df
的功能的数据框。Subject_Car_Make
标签代表汽车品牌。
我想创建一个代表汽车品牌所在地区的新列:
即“亚洲”、“欧洲”、“美国”和“其他”。
我尝试了以下方法,但没有奏效:
## create a list of our conditions
conditions = [
(df.isin({'Subject_Car_Make': ['TOYOTA', 'Honda', 'Lexus', 'Hyundai', 'Kia', 'Nissan', 'Mitsubishi', 'Acura', 'Mazda', 'Infiniti', 'Isuzu', 'Suzuki', 'GAC', 'Subaru', 'FOTON', 'Geely', 'Ashok Leyland', 'CHANGAN', 'Yamaha', 'Howo', 'Tata', 'Rexton', 'Raston', 'Bajaj', 'Jincheng', 'BRILLIANCE', 'ZOYTE']})),
(df.isin({'Subject_Car_Make': ['Mercedes', 'Volkswagen', 'Iveco', 'Range Rover', 'BMW', 'Land Rover', 'Land Rover.', 'Man', 'Peugeot', 'Volvo', 'Audi', 'DAF', 'Skoda', 'Porsche', 'Scania', 'Opel', 'Renault', 'Jaguar', 'MINI COOPER', 'Astra', 'Seat', 'Fiat']})),
(df.isin({'Subject_Car_Make': ['Mack', 'Pontiac', 'Chevrolet', 'Jeep', 'Dodge', 'GMC', 'LIBERTY', 'Wrangler Jeep', 'Grand Cherokee', 'Chrysler', 'Hummer', 'Rolls Royce', 'COMMANDER', 'MG', 'Cadillac', 'Lincoln', 'Buick']})),
(df.isin({'Subject_Car_Make': ['.', 'As Attached', 'Innson', 'Black', 'ABG', 'Ashok Leyland', 'KA', 'Motorcycle']}))
]
## create a list of the values we want to assign for each condition
values = ['Asian Brand', 'European Brand', 'American Brand', 'Other']
## create a new column and use np.select to assign values to it using our lists as arguments
df['Car_Brand'] = np.select(conditions, values)
## display updated DataFrame
df[['Subject_Car_Make', 'Car_Brand']].head()
对于每个字典,我试图表示现有列中的条件或可能Subject_Car_Make
的值,并且我试图用这些值填充新特性的相应值Car_Brand
。
似乎我让这变得不必要地复杂了。有没有办法解决这个问题?
解决方案
推荐阅读
- android - android位置-当应用程序为后台时无法在服务中获取位置
- scala - Spark Scala - 需要遍历数据框中的列
- javascript - 返回除特定索引外的数组索引
- java - Why does this error occur? An established connection was aborted by the software in your host machine
- java - Swing context menu on JavaFX Chart
- php - Laravel Validation - Array fields, only one of two allowed but neither is required
- mysql - ErrorException (E_ERROR) 未定义变量:buildingSections
- r - 按组匹配行值(r,data.table)
- android - 安装 Ad-Hoc Android 应用程序
- angular - 启动时淡入动画