python-3.x - 用 0 替换映射字典中的空项
问题描述
我正在尝试清理一些似乎具有空值或空值的映射字典/对象。这是一个例子:
miles_map['California'].t5_data = {'valid_detailed': 0.0,
'valid_approx': 0.0,
'valid_unmapped': '',
'valid_total': 0.0,
'all_detailed': 0.0,
'all_approx': 0.0,
'all_unmapped': '',
'all_total': 0.0}
空值可以用于任何状态并出现在任何“列”中(例如:vlaid_approx、all_detailed 等......)所以我想要做的是创建一个函数,用 0 替换这些空值中的任何一个。我已经有一个可以用于迭代的所有状态名称的简单列表(可以说它被称为state_list
)。我试过做这样的事情:
print(miles_map['California'].t5_data['valid_unmapped'].fillna(0))
但它会引发错误'str' object has no attribute 'fillna'
。另外,请注意,“空”值可能是 NaN 的 ''、'-'、null。我只想用 0 永久替换字典中的任何这些值。不知道我需要在这里做什么;有什么建议么?
解决方案
你可以手动完成。编译set
要替换的值并修改(或替换)字典
data = {'valid_detailed': 0.0, 'valid_approx': 0.0, 'valid_unmapped': '',
'valid_total': 0.0, 'all_detailed': 0.0, 'all_approx': 0.0,
'all_unmapped': '', 'all_total': 0.0}
null_vals = {"", "-", None, float("nan")}
default = 0.0
for k, v in data.items():
if v in null_vals:
data[k] = default
# or
# data = {k: default if v in null_vals else v for k, v in data.items()}
推荐阅读
- django - 如何在 django 和 DRF 中使用“路由器”
- javascript - 使用本机文件系统 API 将文件保存到特定位置而无需用户交互?
- java - 在 Eclipse 中创建 JAR 失败
- python - 如何在pandas groupby中获得最少的值出现次数
- google-cloud-platform - 谷歌云功能端点在伊朗被封锁
- codenameone - 如何将给定范围内所有单元格中的值相加
- python - 使用字典和 for 循环调用 tf2 模型时出现意外警告
- r - 使用 date_break 命令绘制 x 轴级别时如何解决日期问题?
- sql - 当您在 Oracle 中删除附加了外键的主键约束然后重新启用主键时会发生什么?
- php - 如何阻止 Android 上的 chrome 浏览器破坏 PHP 会话?