Python 使用 itertools 按三个列表分组

柠檬

我试图使用groupby功能的itertools库。对于第 2 组列表,下一个代码完美运行:

from itertools import groupby
from operator import itemgetter

date = ['2019/07/25', '2019/07/25', '2019/07/27', '2019/07/28', '2019/07/28', '2019/07/28', '2019/07/28', '2019/07/28']
count1 = [1, 3, 4, 0, 2, 0, 1, 1]
count2 = [2, 1, 3, 1, 1, 1, 0, 0]

def group_data(date, count):
    group = []
    for k, g in groupby(zip(date, count), itemgetter(0)):
        group.append((k, sum(list(list(zip(*g))[1]))))
    sorted(group)
    return group

print(group_data(date, count1))
[('2019/07/25', 3), ('2019/07/27', 3), ('2019/07/28', 3)]

但是如何为 3 个列表重写它?

group_data(date, count1, count2) 应该返回:

[('2019/07/25', 3, 4), ('2019/07/27', 3, 4), ('2019/07/28', 3, 4)]

换句话说,我想获得与实现pandas函数相同的结果,groupby但使用itertools并获取集合列表:

df = pd.DataFrame({'date':date,'count1':count1,'count2':count2})
df.groupby('date')['count1', 'count2'].sum()


   date     count     count2        
2019/07/25    4         3
2019/07/27    4         3
2019/07/28    4         3
T·卢卡斯

如果您只需要它用于 3 个列表,那么这有效:

def group_data(date, count1, count2):
    group = []
    for k, g in groupby(zip(date, count1, count2), itemgetter(0)):
        g12 = list(zip(*g))
        group.append((k, sum(list(g12[1])), sum(list(g12[2]))))
    sorted(group)
    return group

但我认为它可以简单得多。

如果您需要 n 个列表:

def group_data(date, *counts):
    group = []
    for k, g in groupby(zip(date, *counts), itemgetter(0)):
        gzip = list(zip(*g))
        group.append((k, *list((sum(l) for l in gzip[1:]))))
    sorted(group)
    return group

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Python:如何使用itertools?

来自分类Dev

python itertools:对islice使用循环

来自分类Dev

Python-使用itertools生成二进制列表

来自分类Dev

转换嵌套列表推导以在python中使用itertools链

来自分类Dev

使用itertools将元组分组的列表

来自分类Dev

使用python中的itertools难以通过键创建新列表分组

来自分类Dev

使用itertools的python中的列表(仅移动2个项目,排列)

来自分类Dev

使用三个线程访问三个列表,按顺序打印项目

来自分类Dev

使用python itertools管理嵌套的for循环

来自分类Dev

使用Itertools和For循环创建单杠(Python)

来自分类Dev

使用itertools在python中进行组合

来自分类Dev

使用 itertools 组合时避免重复 - python

来自分类Dev

使用itertools将连续元组按第二个值分组

来自分类Dev

使用itertools将连续元组按第二个值分组

来自分类Dev

如何在python中使用itertools仅打印最后一个匹配项?

来自分类Dev

使用itertools的两个循环

来自分类Dev

Python按三个标准排序

来自分类Dev

按第三个嵌套列表对 Python 中的深层嵌套列表进行排序

来自分类Dev

使用python itertools生成iterables的iterables。(使用重复功能)

来自分类Dev

具有多处理功能的Python itertools-庞大的列表与使用迭代器的低CPU使用率

来自分类Dev

如何使用Python将三个词典列表合并到一个嵌套词典中

来自分类Dev

使用python itertools生成自定义迭代

来自分类Dev

使用itertools.combinations生成配对时的Python内存错误

来自分类Dev

Python的itertools.groupby()文档中使用的keyfunc是什么?

来自分类Dev

Python使用IterTools和多线程在Excel中找出密码

来自分类Dev

如何按顺序组合三个不同大小的列表 Python

来自分类Dev

Python Itertools-组合groupby和配方工具的分组器

来自分类Dev

使用 Excel 2016 按第三个类别列表对两个费用列表进行排序和排序

来自分类Dev

Python itertools:解开列表产品列表的最佳方式

Related 相关文章

  1. 1

    Python:如何使用itertools?

  2. 2

    python itertools:对islice使用循环

  3. 3

    Python-使用itertools生成二进制列表

  4. 4

    转换嵌套列表推导以在python中使用itertools链

  5. 5

    使用itertools将元组分组的列表

  6. 6

    使用python中的itertools难以通过键创建新列表分组

  7. 7

    使用itertools的python中的列表(仅移动2个项目,排列)

  8. 8

    使用三个线程访问三个列表,按顺序打印项目

  9. 9

    使用python itertools管理嵌套的for循环

  10. 10

    使用Itertools和For循环创建单杠(Python)

  11. 11

    使用itertools在python中进行组合

  12. 12

    使用 itertools 组合时避免重复 - python

  13. 13

    使用itertools将连续元组按第二个值分组

  14. 14

    使用itertools将连续元组按第二个值分组

  15. 15

    如何在python中使用itertools仅打印最后一个匹配项?

  16. 16

    使用itertools的两个循环

  17. 17

    Python按三个标准排序

  18. 18

    按第三个嵌套列表对 Python 中的深层嵌套列表进行排序

  19. 19

    使用python itertools生成iterables的iterables。(使用重复功能)

  20. 20

    具有多处理功能的Python itertools-庞大的列表与使用迭代器的低CPU使用率

  21. 21

    如何使用Python将三个词典列表合并到一个嵌套词典中

  22. 22

    使用python itertools生成自定义迭代

  23. 23

    使用itertools.combinations生成配对时的Python内存错误

  24. 24

    Python的itertools.groupby()文档中使用的keyfunc是什么?

  25. 25

    Python使用IterTools和多线程在Excel中找出密码

  26. 26

    如何按顺序组合三个不同大小的列表 Python

  27. 27

    Python Itertools-组合groupby和配方工具的分组器

  28. 28

    使用 Excel 2016 按第三个类别列表对两个费用列表进行排序和排序

  29. 29

    Python itertools:解开列表产品列表的最佳方式

热门标签

归档