Pandas数据分析之groupby函数用法实例详解

1. 什么是groupby函数

groupby函数是Pandas库中的一个非常重要的函数,它用于对数据进行分组操作。通过groupby函数,我们可以根据指定的列或多列对数据进行分组,并对每个分组进行聚合操作或者其他一些操作。

2. groupby函数的基本用法

使用groupby函数的基本语法如下:

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

各个参数的含义如下:

by: 用于指定分组依据的列或多列

axis: 指定进行分组的轴,0表示列,1表示行

as_index: 是否将分组依据的列作为索引,默认为True

sort: 是否对分组后的结果进行排序,默认为True

group_keys: 是否显示分组依据的列,默认为True

squeeze: 是否将分组后的结果进行压缩,默认为False

observed: 在使用多列作为分组依据时,是否观察所有可能的组合,默认为False

3. groupby函数的实例

3.1 数据准备

首先,我们先准备一份示例数据,以便后面进行分组操作。

import pandas as pd

data = {

'Name': ['Tom', 'Nick', 'John', 'Tom', 'John'],

'Subject': ['Math', 'English', 'Math', 'English', 'Math'],

'Score': [80, 75, 90, 85, 95]

}

df = pd.DataFrame(data)

print(df)

运行以上代码,输出如下:

Name Subject Score

0 Tom Math 80

1 Nick English 75

2 John Math 90

3 Tom English 85

4 John Math 95

3.2 单列分组

我们首先以"Subject"列作为分组依据,对数据进行分组操作:

grouped = df.groupby('Subject')

for name, group in grouped:

print(name)

print(group)

print('---')

print(grouped.get_group('Math'))

运行以上代码,输出如下:

English

Name Subject Score

1 Nick English 75

3 Tom English 85

---

Math

Name Subject Score

0 Tom Math 80

2 John Math 90

4 John Math 95

3.3 多列分组

我们还可以使用多列作为分组依据。例如,我们以"Name"和"Subject"两列作为分组依据:

grouped = df.groupby(['Name', 'Subject'])

for name, group in grouped:

print(name)

print(group)

print('---')

print(grouped.get_group(('Tom', 'Math')))

运行以上代码,输出如下:

('John', 'Math')

Name Subject Score

2 John Math 90

4 John Math 95

---

('Nick', 'English')

Name Subject Score

1 Nick English 75

---

('Tom', 'English')

Name Subject Score

3 Tom English 85

---

('Tom', 'Math')

Name Subject Score

0 Tom Math 80

3.4 分组聚合操作

在实际应用中,我们经常需要对每个分组进行聚合操作,例如求和、平均值等。可以使用agg方法对分组后的数据进行聚合操作:

grouped = df.groupby('Subject')

agg_result = grouped['Score'].agg(['sum', 'mean'])

print(agg_result)

运行以上代码,输出如下:

sum mean

Subject

English 160 80.0

Math 265 88.33

4. 总结

通过本文对groupby函数的详细讲解,我们了解了groupby函数的基本用法和示例。在实际应用中,groupby函数是进行数据分组的重要工具,能够方便地对数据进行分组和聚合操作。通过灵活运用groupby函数,我们可以更加高效地进行数据分析和处理。

免责声明:本文来自互联网,本站所有信息(包括但不限于文字、视频、音频、数据及图表),不保证该信息的准确性、真实性、完整性、有效性、及时性、原创性等,版权归属于原作者,如无意侵犯媒体或个人知识产权,请来电或致函告之,本站将在第一时间处理。猿码集站发布此文目的在于促进信息交流,此文观点与本站立场无关,不承担任何责任。

后端开发标签