Python 从嵌套字典中获取最小/最大值

3
我该如何从一个嵌套的字典中获取包含“Nan”缺失值的值的最大/最小值?
*此为参考,我找到了解决方案,并想在这里分享,因为我在stackoverflow上找不到答案。
示例数据集(我正在使用Enron数据集):
{'METTS MARK': {'salary':365788,'to_messages':807,   'deferral_payments':'NaN','total_payments':1061827,   'exercised_stock_options':'NaN','bonus':600000,...
2个回答

3
这是我解决这个问题的方法:
#get minimum and maximum stock options

result = min(data_dict.values(), key=lambda v:v['exercised_stock_options'] if v['exercised_stock_options'] != 'NaN' else float('inf'))
print result

result = max(data_dict.values(), key=lambda v:v['exercised_stock_options'] if v['exercised_stock_options'] != 'NaN' else float('-inf'))
print result

1
您可以在行末添加['exercised_stock_options']来获取该键的值,而不是整个字典。 - dum4ll3

3

来自优达学城论坛,不错的解决方案

exercised_stock_options = [item["exercised_stock_options"] for k, item in 
data_dict.iteritems() if not item["exercised_stock_options"] == "NaN"]
print "min is %s" % min(exercised_stock_options)
print "max is %s" % max(exercised_stock_options)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接