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

2024-05-21 00:31:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用pandas在python上处理汽车销售数据: 汽车奔驰、奥迪、宝马、大众、奔驰、宝马

车型轿车、跨界车、其他、厢式车、其他、SUV

现在我想把类型中的“Other”替换为:when car=Mercedes,type=Sedan,when car=BMW,type=SUV等等。 我正在努力完成这件事。需要帮助。你知道吗


Tags: 数据类型pandastypecar汽车mercedeswhen
2条回答

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

d = {'Mercedes' : 'Sedan', 'BMW' : 'SUV'} 

现在使用map将列映射到值

df.loc[df['Type'] == 'Other', 'Car'].map(d)

提供您的数据帧的一个更完整的答案样本

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

设置-注意我在body列中添加了带有“Other”的行:

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-将“Other”值替换为NaN(这允许您使用fillna函数):

car_sales["body"].replace("Other", np.nan, inplace=True)

第2步-为每种车型创建值的字典映射,然后使用fillna填充值:

car_types = {"Mercedes-Benz":"sedan", "Ford":"crossover"}
car_sales["body"].fillna(car_sales["car"].map(car_types), inplace=True)

相关问题 更多 >