2015-12-01 5 views
2

У меня возникла проблема с извлечением значений из словаря. Я создал этот словарь из CSV-файла. Тем не менее, я застрял, когда попытался извлечь процентное значение для каждого ключа в словаре. Мой словарь выглядит следующим образом:Процент от словарного списка

dic = {'2008': [10,20, 56, 30, 57], '1950': [10.1,59.6, 56, 30.8, 99.6]}. 

Я хотел бы, чтобы мой выход, как:

1950,56.0
2008,30.0

То, что я пытался до сих пор:

import numpy as np 

dic ={} 

pert ={'key':'value'} 
for k in dic.keys(): 

    for items in dic[k]: 
    p = np.percentile(items,95) 
    pert[k] = p 
+1

Какой язык ?. – JimmyB

+3

В примере кода вы указываете 'percentile (items, 95)', в котором намекает, что вы хотите 95-й процентиль, но в вашем примере результат, который вы запросили, является медианом каждого списка. Что вы на самом деле хотите, чтобы этот код выполнял? Можете ли вы объяснить, почему ответ должен быть тем, что вы говорите? –

+0

Hanno, язык в python. Дэвид, ты прав. в коде есть несогласованность. процентиль 95 будет заменен на 50. – Peeriich

ответ

1

Это сделать словарь с 95 процентилями:

dic = {'2008': [10,20, 56, 30, 57], '1950': [10.1,59.6, 56, 30.8, 99.6]} 
res = {k: np.percentile(v, 95) for k, v in dic.items()} 

Содержание res:

{1950': 91.599999999999994, '2008': 56.799999999999997} 

Получить медиану с:

>>> {k: np.median(v) for k, v in dic.items()} 
{'1950': 56.0, '2008': 30.0} 
+0

Спасибо Майку. Цените свое время – Peeriich

+0

Вы можете [принять] (http://stackoverflow.com/help/accepted-answer) ответ, если он решает вашу проблему. –

Смежные вопросы