关键词

Pandas之groupby( )用法笔记小结

Pandas是Python中最流行的数据分析库之一,它提供了许多数据操作和处理的工具。其中一个重要的方法就是groupby()函数。

groupby()函数的基本用法

groupby()函数可以将数据按照某个或多个列进行分组,并将分组后的数据进行聚合处理。基本用法如下:

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

需要注意的是,groupby()函数除了第一个参数之外,其他参数均有默认值。在使用groupby()函数时,第一个参数是必填项,它代表按照哪个或哪些列进行分组。以DataFrame为例,如下所示:

import pandas as pd

data = {'Name': ['Tom', 'Jack', 'Tom', 'Jack', 'Tom', 'Ava', 'Ava', 'Ava'],
        'Dept': ['CS', 'PHYS', 'PHYS', 'CS', 'CS', 'PHYS', 'PRL', 'PRL'],
        'Salary': [5000, 3500, 4500, 3250, 5500, 4200, 5800, 5200]}
df = pd.DataFrame(data)

其中,Name代表员工姓名,Dept代表所属部门,Salary代表薪水。假设我们需要按照部门来计算平均薪水,代码如下:

df.groupby(['Dept'])['Salary'].mean()

这样就完成了按照不同部门计算平均薪水的操作。需要注意的是,输出结果中,Dept列已经不再作为列名出现,而是作为了分组的名称。

groupby()函数的高级用法

在实际应用中,groupby()函数往往会配合其他函数进行使用,以完成多个操作之间的衔接。下面是两个groupby()函数的高级用法,即agg()和apply()的示例。

agg()

agg()函数可以对数据进行一些聚合操作,比如求和、平均、标准差等。常见的用法如下:

df.groupby(['Dept'])['Salary'].agg(['sum', 'mean'])

这样就可以计算出各个部门的总薪水和平均薪水两个值。

apply()

apply()函数则可以对分组后的数据进行自定义的聚合操作,比如计算多个指标,做复杂的统计分析等。示例如下:

def my_agg(x):
    return pd.Series({'mean': x['Salary'].mean(),
                      'std': x['Salary'].std(),
                      'count': x['Dept'].count()})

df.groupby(['Dept']).apply(my_agg)

这样就可以计算出各个部门的薪水平均值、标准差和人数。

在实际应用中,groupby()函数可以与其他函数进行结合,比如filter()、transform()、pivot_table()等,进一步提高数据的分析效率。

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

展开阅读全文