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

问题描述 投票:1回答:1

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

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

现在我想修复一些这样的值,如:toyouta - > toyota

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

我已经尝试制作一个字典,其中键是正确的单词,值是要纠正的单词,然后将其映射到我的系列。

这是我的代码的样子:

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。一种解决方案是将所有正确的值映射到自己,但我希望有更好的方法来解决这个问题。

python pandas
1个回答
3
投票

使用:

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)
© www.soinside.com 2019 - 2024. All rights reserved.