Pandas实现聚合运算agg()的示例代码

什么是Pandas?

Pandas是一个基于NumPy的Python数据分析库,它可以轻松地操作结构化数据,如表格和时间序列数据。它提供了丰富的数据结构和函数来快速处理和分析数据,并且可以与其他库(如Matplotlib等)相结合进行数据可视化。

在Pandas中,对数据进行聚合分析是一项非常重要的任务,聚合分析是指将数据集中的多个数据汇总为单个数据。Pandas提供了多种聚合函数来对数据进行分析,其中最常见的是agg()函数。

agg()函数的基本语法

agg()函数的语法如下:

DataFrame.agg(func=None, axis=0, *args, **kwargs)

其中,DataFrame表示数据表,func表示聚合操作的函数,axis表示按哪个轴进行操作。*args和**kwargs是用于传递任意数量的参数的可选参数。

agg()函数示例

示例1:对数据进行简单聚合操作

假设我们有以下数据表:

import pandas as pd

data = {'Name': ['Tom', 'Tom', 'Jack', 'Jack', 'Jack', 'Tom', 'Tom', 'Jack', 'Tom', 'Jack'],

'Age': [25, 18, 23, 27, 19, 23, 26, 29, 21, 24],

'Salary': [5000, 6000, 7000, 8000, 9000, 10000, 11000, 12000, 13000, 14000]}

df = pd.DataFrame(data)

我们可以使用agg()函数对数据进行聚合操作:

df_agg = df.groupby('Name').agg({'Age':'mean', 'Salary':'sum'})

print(df_agg)

输出结果如下:

           Age  Salary

Name

Jack 23.600000 66000

Tom 23.142857 60000

以上代码中,我们使用了groupby()函数将数据按照Name进行分组,然后对每组数据计算Age的均值和Salary的总和。

示例2:编写自定义函数进行聚合操作

除了使用已有的聚合函数,我们还可以编写自定义函数来进行聚合操作。例如,我们可以编写一个函数来计算每个人的工资增长量:

def growth_rate(s):

return (s.iloc[-1] - s.iloc[0]) / s.iloc[0]

df_agg = df.groupby('Name').agg({'Salary': growth_rate})

print(df_agg)

输出结果如下:

        Salary

Name

Jack 0.272727

Tom 1.200000

以上代码中,我们使用了iloc属性来访问数据表中的元素。iloc表示根据元素的位置进行访问,例如s.iloc[0]就表示访问s中的第一个元素。

示例3:同时进行多种聚合操作

除了可以对单个列进行聚合操作外,我们还可以对数据表中的多个列进行聚合操作。例如,我们可以同时计算每个人的平均年龄、最大工资和最小工资:

df_agg = df.groupby('Name').agg({'Age':'mean', 'Salary':['max', 'min']})

print(df_agg)

输出结果如下:

           Age Salary      

mean max min

Name

Jack 23.600000 12000 7000

Tom 23.142857 14000 5000

以上代码中,我们使用了多级列索引来访问数据表中的元素。例如,df_agg['Salary']['max']表示访问df_agg表中Salary列的max子列。

总结

在Pandas中,agg()函数是一个非常强大的工具,它可以轻松地对数据进行聚合分析。除了可以使用已有的聚合函数外,我们还可以编写自定义函数来进行聚合操作,并且可以同时对多个列进行聚合操作。掌握agg()函数的使用方法,将会让我们更有效地分析处理数据,为后续的数据可视化和机器学习任务打下坚实的基础。

后端开发标签