2016-04-29 2 views
1

Как я могу получить min/max для значения из вложенного словаря, который также имеет «Nan» для отсутствующих значений?python Получение минимальных/максимальных значений из вложенного словаря

* Это для справки Я нашел решение этого, и я подумал, что я делюсь им здесь, так как не смог найти ответ нигде в stackoverflow.

Пример набора данных (я работал с набором данных Enron):

{ 'Metts МАРК': { 'зарплату': 365788, 'to_messages': 807, 'deferral_payments': 'NaN', 'total_payments': 1061827, 'exercised_stock_options': 'NaN', 'бонус': 600000, ...

ответ

2

от udacity forum, nice solution

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) 
1

Это как я решил эту проблему:

#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 
Смежные вопросы