将映射字典中的空项替换为 0



我正在尝试清理一些似乎具有空值或null值的映射字典/对象。下面是一个例子:

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()}

最新更新