关键词

详解pandas.DataFrame.groupby()(按列分组)函数使用方法

pandas.DataFrame.groupby()是pandas中用于分组聚合数据的方法。具体来说,它可以按照某些列的值将数据分组,并对每个分组进行聚合操作,如求和、平均、计数等。

使用方法:

pandas.DataFrame.groupby()的基本语法为:

df.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, observed=False, **kwargs)

参数说明如下:

  • by:用于指定分组依据的列或列列表;
  • axis:用于指定分组的方向,0表示按行分组(默认),1表示按列分组;
  • as_index:用于指定是否将用于分组的列设置为索引列;
  • sort:用于指定是否对分组结果进行排序;
  • group_keys:用于指定是否对分组结果的键进行排序;
  • squeeze:用于指定是否对只有一个分组结果的结果进行降维操作;
  • observed:用于指定是否只显示观察到的分组结果。

实例1

考虑以下数据集,它包含了不同学生的考试成绩信息:

姓名 学科 成绩
张三 语文 95
李四 语文 78
王五 语文 83
张三 数学 85
李四 数学 90
王五 数学 92

我们可以按照学科对数据进行分组,然后求每个学科的平均成绩:

import pandas as pd

data = {
    '姓名': ['张三', '李四', '王五', '张三', '李四', '王五'],
    '学科': ['语文', '语文', '语文', '数学', '数学', '数学'],
    '成绩': [95, 78, 83, 85, 90, 92],
}

df = pd.DataFrame(data)

result = df.groupby('学科').mean()

print(result)

运行结果:

          成绩
学科         
数学  89.000000
语文  85.333333

可以看到,每个学科的平均成绩被求出来了。

实例2

现在考虑以下数据集,它包含了不同城市的气温信息:

城市 日期 温度
北京 2020/01/01 -3
北京 2020/01/02 -4
北京 2020/01/03 -2
上海 2020/01/01 7
上海 2020/01/02 9
上海 2020/01/03 8

我们可以按照城市对数据进行分组,然后求每个城市的最低温度:

import pandas as pd

data = {
    '城市': ['北京', '北京', '北京', '上海', '上海', '上海'],
    '日期': ['2020/01/01', '2020/01/02', '2020/01/03', '2020/01/01', '2020/01/02', '2020/01/03'],
    '温度': [-3, -4, -2, 7, 9, 8]
}

df = pd.DataFrame(data)

result = df.groupby('城市')['温度'].min()

print(result)

运行结果:

城市
上海    7
北京   -4
Name: 温度, dtype: int64

可以看到,每个城市的最低温度被求出来了。注意,这里我们指定了['温度']是因为我们只关心温度这一列的最小值。

本文链接:http://task.lmcjl.com/news/17687.html

展开阅读全文