我有一个嵌套的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'方法,并且可能会给您带来问题。 –