我有一個嵌套的Python字典是這樣的:如何使用地圖上的Python /降低有序字典
my_dictionary = {"Ab" : {'name': 'usa', 'boolean': 'YES'},
"Ac" : {'name': 'usa', 'boolean': 'NO'},
"Ad": {'name': 'UK', 'boolean': 'NO'},
"Ae": {'name': 'UK', 'boolean': 'NO'}}
我創建了一個有序字典從上面的解釋是這樣的:
from collections import OrderedDict
sorted_dict = OrderedDict(sorted(my_dictionary.iteritems(), key=lambda x: x[1]['name']))
print sorted_dict
這使:
OrderedDict([("Ab", {'name': 'usa', 'boolean': 'YES'}),
("Ac", {'name': 'usa', 'boolean': 'NO'}),
("Ad", {'name': 'UK', 'boolean': 'NO'}),
("Ae", {'name': 'UK', 'boolean': 'NO'})])
我需要添加一個新的列('結果')到有序的字典。創建新列的邏輯如下:
收集所有具有相同「名稱」的行:這裏是'usa'和'UK'。然後應用基於'布爾'列的reduce方法。該函數應該是二進制「OR」(||)。
我試圖申請減少這樣的:
reduce(lambda x,y: x['boolean'] or y['boolean']
,但陷入了與同一「名稱」中選擇所有行。
所以最終的有序字典的樣子:
OrderedDict([("Ab", {'name': 'usa', 'boolean': 'YES', 'result': 'YES'}),
("Ac", {'name': 'usa', 'boolean': 'NO', 'result': 'YES'}),
("Ad", {'name': 'UK', 'boolean': 'NO', 'result': 'NO'}),
("Ae", {'name': 'UK', 'boolean': 'NO', 'result': 'NO'})])
如何使用熊貓包中的數據框? – Elmex80s
@ Elmex80s:我也在考慮這個問題。但是,它可以集成到一個純Python代碼庫中。我只在筆記本上使用了熊貓,而不是完全成熟的項目 – user3683555
不要使用'sorted'作爲變量名,它會隱藏內置'sorted'方法,並且可能會給您帶來問題。 –