python - 根据另一个时间戳值的月份,对列表元素的值进行分组和求和

标签 python list datetime sum

我在 Python 中有这个列表:

L_initial=[[1,'2019-01-01'], [1,'2019-01-01'],[2,'2019-02-02'],[4,'2019-03-03'],[5,'2019-03-04']]

我想总结所有元素的第一个值,按时间戳形式字符串的同一个月分组,最终列表是这样的:

L_final=[[2,'2019-01'],[2,'2019-02'],[9,'2019-03']]

我可以按天计算,但不能按月计算,这是我每天求和的代码:

dico = {}
for v, k in liste_initial:
    dico[k] = dico.get(k, 0) + v
liste_final=[[v, k] for k, v in dico.items()]

最佳答案

由于您的日期是 YYYY-MM-DD 格式,您只需将每个日期的前 7 个字符按月分组即可:

liste_initial = [[1,'2019-01-01'], [1,'2019-01-01'],[2,'2019-02-02'],[4,'2019-03-03'],[5,'2019-03-04']]

dico = {}
for v, k in liste_initial:
    dico[k[:7]] = dico.get(k[:7], 0) + v
    
liste_final=[[v, k] for k, v in dico.items()]

输出:

[[2, '2019-01'], [2, '2019-02'], [9, '2019-03']]

关于python - 根据另一个时间戳值的月份,对列表元素的值进行分组和求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65491130/

相关文章:

javascript - 如何从 JavaScript 中的用户输入将时间解析为 Date 对象?

python - 如何在python中一个接一个地运行两个进程

Python Regex 匹配文件列表中的文件(出错)

python - 迭代搜索循环列表

MYSQL一天间隔从00 :00:00 to 23:59:00

java - for 循环时间

python - 日志记录在单独的线程中不起作用

python - 空闲和 python

python - 如何在 Python 中选择嵌套列表中的列表项

python - 如何将 DataFrame 中的 K 个随机值附加到不重复的列表列表中?