python - 从python中的嵌套字典中删除nan
问题描述
从 python 中的嵌套字典中删除 NaN 值。我的嵌套字典如下所示:
my_dict = {'abc':{'a':0.987, 'b':0.765, 'c': numpy.nan}, 'mda':{'a':0.145, 'b':0.584, 'e':numpy.nan}, 'fop':{'a':0.145, 'b': numpy.nan, 'c':0.485}}
我想从嵌套字典中删除 Nan 值,预期结果如下所示:
my_dict = {'abc':{'a':0.987, 'b':0.765}, 'mda':{'a':0.145, 'b':0.584}, 'fop':{'a':0.145, 'c':0.485}}
我写了下面的代码来从嵌套字典中删除 Nan 的:
def remove_nan_from_dict(my_dict):
new_dict = {}
original_dict = collections.defaultdict()
from math import isnan
for k, v in my_dict.items():
for k1, v1 in v.items():
print(v1)
if not isnan(v1):
new_dict[k1] = v1
print(new_dict)
original_dict[k] = new_dict
# print(original_dict.items())
return original_dict
但低于字典:
defaultdict(None, {'abc': {'a': 0.145, 'b': 0.584, 'c': 0.485}, 'mda': {'a': 0.145, 'b': 0.584, 'c': 0.485}, 'fop': {'a': 0.145, 'b': 0.584, 'c': 0.485}})
解决方案
您可以在此处使用 dict 理解并检查该值是否为np.nan
:
new_dict = {k: {a: b for a, b in v.items() if not np.isnan(b)} for k, v in my_dict.items()}
推荐阅读
- android - android studio APK logcat 问题
- javascript - 如何访问存储在数据库中的数组
- c# - C# 和 FileSystemWatcher
- r - 图例散点图
- python - 如何在 VLC 或 PYTHON OPENCV 中流式传输 WEB RTC WOWZA 的视频捕获,
- javascript - Ionic + React.js:警告:列表中的每个孩子都应该有一个唯一的“关键”道具
- python - Moto 警告:使用 ec2_backend.describe_images() 为您的测试找到合适的图像
- c# - 如何在小于 O(n^3) 的 2d 布尔数组中找到最大的全真矩形的坐标?
- c# - 使用客户端提供的 amazonInfo 将文件上传到 AWS S3
- r - 如何使用文件夹名称重命名文件列表