我有以下字典清单:
[{'Reportdt': '2021-09-30',
'Total_Vaccinations': 42107850,
'Total_Individuals': None,
'LastValue': 0,
'ObjectId': 13452,
'Elderly': 1655476,
'FirstDose': 23386741,
'SecondDose': 18721109},
{'Reportdt': '2021-09-30',
'Total_Vaccinations': 42107619,
'Total_Individuals': None,
'LastValue': 0,
'ObjectId': 13451,
'Elderly': 1655474,
'FirstDose': 23386687,
'SecondDose': 18720932},
{'Reportdt': '2021-09-30',
'Total_Vaccinations': 42107429,
'Total_Individuals': None,
'LastValue': 0,
'ObjectId': 13450,
'Elderly': 1655473,
'FirstDose': 23386644,
'SecondDose': 18720785},
{'Reportdt': '2021-09-30',
'Total_Vaccinations': 42107125,
'Total_Individuals': None,
'LastValue': 0,
'ObjectId': 13449,
'Elderly': 1655468,
'FirstDose': 23386571,
'SecondDose': 18720554},
{'Reportdt': '2021-09-30',
'Total_Vaccinations': 42106807,
'Total_Individuals': None,
'LastValue': 0,
'ObjectId': 13448,
'Elderly': 1655464,
'FirstDose': 23386503,
'SecondDose': 18720304}因为每天都有多个字典,所以我想为每一天获得最高的Total_Vaccinations值。
我能够在白天对字典进行分组,而且我也能够为一个特定的键获得最高的价值,但是,我不能同时做到这两个方面。有什么建议吗?(我在使用Python)
发布于 2021-10-15 14:48:17
如果您可以在同一天使用多个字典,我认为这种简单的方法可以完成以下工作:
res = {}
for i in list_dictionaries:
res[i['Reportdt']] = max(i['Total_Vaccinations'], res.get(i['Reportdt'], 0))发布于 2021-10-15 14:37:37
尝试list.sort或sorted对字典列表进行排序。例如,您可以使用下面的选项按日期进行排序(最近一次),然后按接种总量(从最高到最低)进行排序。
from pprint import pprint
my_list = [{'Reportdt': '2021-09-30',
'Total_Vaccinations': 42107850,
'Total_Individuals': None,
'LastValue': 0,
'ObjectId': 13452,
'Elderly': 1655476,
'FirstDose': 23386741,
'SecondDose': 18721109},
{'Reportdt': '2021-09-30',
'Total_Vaccinations': 42107619,
'Total_Individuals': None,
'LastValue': 0,
'ObjectId': 13451,
'Elderly': 1655474,
'FirstDose': 23386687,
'SecondDose': 18720932},
{'Reportdt': '2021-09-30',
'Total_Vaccinations': 42107429,
'Total_Individuals': None,
'LastValue': 0,
'ObjectId': 13450,
'Elderly': 1655473,
'FirstDose': 23386644,
'SecondDose': 18720785},
{'Reportdt': '2021-09-30',
'Total_Vaccinations': 42107125,
'Total_Individuals': None,
'LastValue': 0,
'ObjectId': 13449,
'Elderly': 1655468,
'FirstDose': 23386571,
'SecondDose': 18720554},
{'Reportdt': '2021-09-30',
'Total_Vaccinations': 42106807,
'Total_Individuals': None,
'LastValue': 0,
'ObjectId': 13448,
'Elderly': 1655464,
'FirstDose': 23386503,
'SecondDose': 18720304}]
my_list.sort(key=lambda x: (x['Reportdt'], x['Total_Vaccinations']),
# Reverse to sort by highest -> lowest
reverse=True)
print(f'-- List:')
pprint(my_list)
day_with_highest_vac = my_list[0]
print('-- Day with highest vaccination:')
pprint(day_with_highest_vac)发布于 2021-10-15 14:57:36
如果pandas对你来说没问题
df=pd.DataFrame(my_list_of_dicts)
print(df.sort_values(['Reportdt', 'Total_Vaccinations'], ascending=False))https://stackoverflow.com/questions/69586295
复制相似问题