python - 如何使用字典映射进行值校正?
问题描述
我有一个熊猫系列,其独特的价值类似于:
['toyota', 'toyouta', 'vokswagen', 'volkswagen,' 'vw', 'volvo']
现在我想修复其中一些值,例如: toyouta -> toyota
(请注意,并非所有值都有错误,例如沃尔沃,丰田等)
我尝试制作一个字典,其中 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
. 一种解决方案是将所有正确的值映射到它们自己,但我希望有更好的方法来解决这个问题。
解决方案
利用:
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)
推荐阅读
- javascript - 在 Vue 中使用带有嵌套组件的 v-model
- xamarin - HttpListner 发现
- java - Spring Boot POST 参数大小限制
- c - 可以覆盖管道吗?
- typescript - 我可以在 TypeScript 中创建一个包含基本类型的自定义类型吗?
- haskell - Haskell:生成元组列表(0..x,0..y)
- haskell - 如何创建可以是字符串或整数的类型?
- c# - 如何在c#中将数组的所有元素从左侧移动到右侧
- node.js - 如何从云功能中引用 Firebase 的实时数据库?
- deployment - 在 OpenShift for pod 上获取错误状态