admin 管理员组

文章数量: 887021


2024年2月18日发(作者:css控制表单样式代码)

pythongroupby函数用法

Groupby函数是Python中非常经典的函数之一,它可以将一个序列中具有相同值的元素进行归纳与分组,在数据分析中使用十分频繁。该函数属于itertools模块中的几个函数之一,但是经常被单独拿出来使用。

2、groupby函数的语法

groupby函数的完整语法格式如下:

groupby(iterable[,key])

其中,iterable参数指定了要被分组的可迭代对象,key参数可以指定分组依据,如果未指定key参数,那么iterable中的元素本身作为分组依据。

3、groupby函数的返回值

groupby函数返回一个迭代器,其中的元素类型为tuple,元组中包含两个元素,第一个元素为分组依据,第二个元素为一个迭代器,这个迭代器包含了该组中的所有数据。

例如,对一个字符串序列进行groupby操作:

s = aaabbbcccddd

for key, group in groupby(s):

print(key, list(group))

输出:

a [a a a

b [b b b

- 1 -

c [c c c

d [d d d

4、groupby函数的使用

groupby函数与其它Python函数结合使用时,可以用来实现更多的数据分析功能,如计算每个分组的个数:

from collections import Counter

s = aaabbbcccddd

counts = Counter(list(groupby(s)))

print(counts)

输出:

Counter({a 3, b 3, c 3, d 3})

也可以用来实现更复杂的功能,如计算每个分组中元素的总和:

from functools import reduce

s = [1,2,3,4,5,6,7,8,9,0]

sum_by_group = {key : reduce(lambda x, y: x + y, group)

for key, group in groupby(s, key=lambda n: n % 2 == 0)}

print(sum_by_group)

输出:

{True: 20, False: 25}

5、总结

本文介绍了Groupby函数的使用方法,它可以将一个序列中具 - 2 -

有相同值的元素进行归纳与分组,在数据分析中使用十分频繁。groupby函数的完整语法格式为groupby(iterable[,key]),其中,iterable参数指定了要被分组的可迭代对象,key参数可以指定分组依据,如果未指定key参数,那么iterable中的元素本身作为分组依据。groupby函数返回一个迭代器,其中的元素类型为tuple,元组中包含两个元素,第一个元素为分组依据,第二个元素为一个迭代器,这个迭代器包含了该组中的所有数据。groupby函数可以和其它Python函数结合使用,实现更多的数据分析功能,常被用于实现计算每个分组的个数、元素的总和等功能。

- 3 -


本文标签: 函数 分组 元素 迭代