首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将y列中的特定元素替换为x列中的特定元素

将y列中的特定元素替换为x列中的特定元素
EN

Stack Overflow用户
提问于 2019-02-28 18:48:51
回答 2查看 66关注 0票数 0

我正在用熊猫制作python的汽车销售数据:奔驰,奥迪,宝马,大众,梅赛德斯,宝马

轿车,交叉,其他,范,其他,SUV

现在我想把“其他”替换为:当car=,奔驰,然后是type=Sedan,当car=,宝马,然后是type=SUV,等等。我正努力把这件事做完。需要帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-02-28 18:54:23

编辑:根据您提供的示例数据更新的答案

安装程序-注意,我在body列中添加了“其他”行:

代码语言:javascript
复制
import pandas as pd
import numpy as np

cars = [['Ford',15500.0,'crossover',68,2.5,'Gas','yes',2010,'Kuga','full'],
        ['Mercedes-Benz',20500.0,'sedan',173,1.8,'Gas','yes',2011,'E-Class','rear'],
        ['Mercedes-Benz',20500.0,"Other",173,1.8,'Gas','yes',2011,'E-Class','rear'],
        ['Ford',15500.0,"Other",68,2.5,'Gas','yes',2010,'Kuga','full']] 

car_sales = pd.DataFrame(cars, columns=['car','price','body','mileage','engV','engType','registration','year','model','drive'])

步骤1-用NaN替换“其他”值(这允许您使用函数):

代码语言:javascript
复制
car_sales["body"].replace("Other", np.nan, inplace=True)

步骤2-为每种汽车类型创建值的字典映射,然后使用馅to来填充值:

代码语言:javascript
复制
car_types = {"Mercedes-Benz":"sedan", "Ford":"crossover"}
car_sales["body"].fillna(car_sales["car"].map(car_types), inplace=True)
票数 2
EN

Stack Overflow用户

发布于 2019-02-28 18:57:18

创建一个以car为键,键入为值的字典,

代码语言:javascript
复制
d = {'Mercedes' : 'Sedan', 'BMW' : 'SUV'} 

现在使用map将列映射到值,

代码语言:javascript
复制
df.loc[df['Type'] == 'Other', 'Car'].map(d)

提供数据的示例,以获得更完整的答案。

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

https://stackoverflow.com/questions/54932352

复制
相关文章

相似问题

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