python钟groupby
时间: 2024-06-04 20:04:59 浏览: 155
利用Pandas和Numpy按时间戳将数据以Groupby方式分组
Python中的`groupby`函数是一种非常有用的函数,可以用于将可迭代对象(如列表或元组)分组。其实现原理是对于可迭代对象中的元素,按照指定的关键字进行分组,相同的元素会被放在同一个组中,最终返回一个字典或者迭代器,其中每个键对应着相应的分组。
例如,如果我们有一个列表,其中包含了一些人员信息,包括姓名和性别:
```python
people = [
{"name": "Alice", "gender": "F"},
{"name": "Bob", "gender": "M"},
{"name": "Charlie", "gender": "M"},
{"name": "Diana", "gender": "F"},
{"name": "Eva", "gender": "F"}
]
```
我们可以使用`groupby`函数将这些人员信息按照性别分组:
```python
from itertools import groupby
people.sort(key=lambda x: x["gender"]) # 先按照性别进行排序
groups = groupby(people, key=lambda x: x["gender"]) # 再按照性别进行分组
for gender, group in groups:
print(gender, list(group))
```
输出结果为:
```
F [{'name': 'Alice', 'gender': 'F'}, {'name': 'Diana', 'gender': 'F'}, {'name': 'Eva', 'gender': 'F'}]
M [{'name': 'Bob', 'gender': 'M'}, {'name': 'Charlie', 'gender': 'M'}]
```
在上面的例子中,我们先按照性别进行了排序,这样相同性别的人员就会排在一起。然后使用`groupby`函数对排好序的列表进行分组,并将结果输出。注意,`groupby`函数返回的结果是一个迭代器,每次迭代返回一个键值对,其中键是分组的关键字(这里是性别),值是一个迭代器,包含了所有属于这个分组的元素。
阅读全文