Correct Way to Remove Values from Nested Dictionary
我正在处理csv文件中的数据集。
我用这个
这很有效,但是由于数据的结构,我得到了一本字典。嵌套字典有多个"nan"值。我需要删除所有的NaN值,字典可以保持嵌套,也可以使用普通字典。
数据按以下格式从字典中打印:
以下是我的代码示例:
1 2 | df = pd.read_csv(infile, parse_dates=True, infer_datetime_format=True) dic = df.to_dict() |
我尝试过这里的建议,并试图通过一些理解来做到这一点,但我认为由于嵌套的性质,我不确定如何适应它。
我也试过这样循环:
1 2 3 4 5 6 7 8 9 10 | value_list = [] key_list = [] for k, v in dic.items(): key_list.append(k) for c, q in v.items(): if str(q) != 'nan': value_list.append(q) else: pass |
我希望能从这两个列表中创建一个新的dic。然而,数据在一起会模糊,很难分离值集。一定有更好的方法来做这件事。
递归亲爱的操作:
1 2 3 4 5 6 7 8 9 | from math import isnan def remove_nans(d): for key in d.copy(): if type(d[key]) == float and isnan(d[key]): del d[key] elif type(d[key]) == dict: remove_nans(d[key]) |
打电话给你的