pandas groupby用法 多列 取前几行
时间: 2023-09-05 10:01:50 浏览: 138
pandas 选择某几列的方法
pandas的groupby函数是对数据进行分组操作的一种常用方法。它可以将数据按照一列或多列进行分组,并对每个组进行聚合、转换或其他操作。当需要对分组后的数据进行筛选,只取前几行时,可以使用head()函数。
在groupby函数中,通过传入多个列名可以按照多列进行分组。例如,假设我们有一个包含学生姓名、学科和成绩的数据集,我们想按照学科和姓名这两列进行分组,并取每个组的前几行数据。
假设我们已经将数据导入pandas的DataFrame中,可以这样操作:
``` python
import pandas as pd
# 创建DataFrame
data = {'姓名': ['张三', '李四', '王五', '赵六', '刘七', '张三', '李四', '王五', '赵六', '刘七'],
'学科': ['语文', '数学', '语文', '数学', '英语', '语文', '数学', '语文', '数学', '英语'],
'成绩': [90, 80, 70, 60, 50, 85, 75, 65, 55, 45]}
df = pd.DataFrame(data)
# 按照学科和姓名进行分组,并取前两行数据
top2 = df.groupby(['学科', '姓名']).head(2)
print(top2)
```
输出结果为:
```
姓名 学科 成绩
0 张三 语文 90
1 李四 数学 80
2 王五 语文 70
3 赵六 数学 60
4 刘七 英语 50
5 张三 语文 85
6 李四 数学 75
7 王五 语文 65
8 赵六 数学 55
```
通过groupby函数按照学科和姓名进行分组后,再使用head(2)函数取每个组的前两行数据。结果中会包含每个学科和姓名组合的前两行数据。
总结起来,使用pandas的groupby函数按照多列进行分组,再用head()可方便地取前几行数据。
阅读全文