如何使用字典映射进行值更正?

2024-10-04 07:26:59 发布

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

我有一个熊猫系列,其独特的价值观如下:

['toyota', 'toyouta', 'vokswagen', 'volkswagen,' 'vw', 'volvo']

现在我想修正其中一些值,比如: 托尤塔->;丰田

(请注意,并非所有值都有错误,如沃尔沃、丰田等)

我试着制作一本字典,其中key是正确的单词,value是要更正的单词,然后将其映射到我的系列中

我的代码是这样的:

corrections = {'maxda': 'mazda', 'porcshce': 'porsche', 'toyota': 'toyouta', 'vokswagen': 'vw', 'volkswagen': 'vw'}
df.brands = df.brands.map(corrections)

print(df.brands.unique())
>>> [nan, 'mazda', 'porsche', 'toyouta', 'vw']

正如您所看到的,问题在于,通过这种方式,字典中不存在的所有值都会自动转换为nan。一种解决方案是将所有正确的值映射到它们自己,但我希望有更好的方法来实现这一点


Tags: df字典nan单词vw价值观correctionsvolkswagen
1条回答
网友
1楼 · 发布于 2024-10-04 07:26:59

用途:

df.brands = df.brands.map(corrections).fillna(df.brands)

或:

df.brands = df.brands.map(lambda x: corrections.get(x, x))

或:

df.brands = df.brands.replace(corrections)

相关问题 更多 >