2017-01-31 2 views
-1

У меня есть следующие dataframe, импортирован из питона Dict:Dataframe в Словаре питона панд

perimeter risk vuls 0 External High 35 1 External Low 9 2 External Medium 76 3 Internal High 36 4 Internal Low 8 5 Internal Medium 41

и мне нужно, чтобы извлечь следующий вывод:

data = 
[perimeter:External, risk:{High:35, Low:9, Medium:76}], 
[perimeter:Internal: risk:{High:36, Low:8, Medium:41}] 

Что является лучшим подходом для достижения этого?

Благодаря

ответ

1

Вы хотите получить список словарей, каждый из которых исходит от одного периметра. Вы можете перебрать сгруппированный кадр данных с групповыми переменной perimeter и построить perimeter из ключа и risk из значений с списком пониманием следующим образом:

[{'perimeter': k, 'risk': g.set_index('risk').vuls.to_dict()} 
for k, g in df.groupby('perimeter')] 

# [{'perimeter': 'External', 'risk': {'High': 35, 'Low': 9, 'Medium': 76}}, 
# {'perimeter': 'Internal', 'risk': {'High': 36, 'Low': 8, 'Medium': 41}}] 
Смежные вопросы