pandas agg函数详细介绍

pandas agg函数详细介绍

参考:pandas agg function

pandas是一个强大的Python数据处理库,广泛应用于数据分析和数据科学领域。其中,agg函数是pandas中一个非常重要的功能,它允许用户对数据进行灵活的聚合操作。本文将详细介绍agg函数的用法,并通过多个示例展示其在实际应用中的使用。

1. agg函数概述

在pandas中,agg函数是用于聚合操作的核心函数之一,它可以对DataFrame或Series对象中的数据进行多种统计汇总。使用agg函数可以一次性应用多个聚合操作,或对数据分组后进行聚合,极大地提高了数据处理的效率和灵活性。

2. 基本用法

示例代码1:单个函数聚合

import pandas as pd
import numpy as np

# 创建示例DataFrame
df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5)
})

# 使用agg应用单个聚合函数
result = df.agg('sum')
print(result)

Output:

pandas agg函数详细介绍

示例代码2:应用多个聚合函数

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5)
})

# 使用agg应用多个聚合函数
result = df.agg(['sum', 'mean'])
print(result)

Output:

pandas agg函数详细介绍

3. 对特定列应用聚合

示例代码3:对指定列应用单个聚合函数

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5)
})

# 对列A应用sum聚合函数
result = df['A'].agg('sum')
print(result)

Output:

pandas agg函数详细介绍

示例代码4:对指定列应用多个聚合函数

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5)
})

# 对列A应用多个聚合函数
result = df['A'].agg(['sum', 'mean'])
print(result)

Output:

pandas agg函数详细介绍

4. 分组聚合

示例代码5:对数据分组后应用聚合函数

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'Key': ['A', 'B', 'A', 'B', 'A'],
    'Value': np.random.rand(5)
})

# 对Key列分组后对Value列应用sum聚合函数
grouped = df.groupby('Key')
result = grouped['Value'].agg('sum')
print(result)

Output:

pandas agg函数详细介绍

示例代码6:对数据分组后应用多个聚合函数

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'Key': ['A', 'B', 'A', 'B', 'A'],
    'Value': np.random.rand(5)
})

# 对Key列分组后对Value列应用多个聚合函数
grouped = df.groupby('Key')
result = grouped['Value'].agg(['sum', 'mean'])
print(result)

Output:

pandas agg函数详细介绍

5. 使用自定义函数进行聚合

示例代码7:应用自定义聚合函数

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5)
})

# 定义一个自定义聚合函数
def my_agg(x):
    return np.sum(x) + 10

# 应用自定义聚合函数
result = df.agg(my_agg)
print(result)

Output:

pandas agg函数详细介绍

示例代码8:对特定列应用自定义聚合函数

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5)
})

# 应用自定义聚合函数到特定列
result = df['A'].agg(my_agg)
print(result)

6. 聚合后的数据转换

示例代码9:聚合后重新组织数据

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'Key': ['A', 'B', 'A', 'B', 'A'],
    'Value': np.random.rand(5)
})

# 分组聚合后重新组织数据
grouped = df.groupby('Key')
result = grouped['Value'].agg('sum').reset_index()
print(result)

Output:

pandas agg函数详细介绍

示例代码10:聚合并计算所有列的总和

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5)
})

# 聚合并计算所有列的总和
result = df.agg('sum').sum()
print(result)

Output:

pandas agg函数详细介绍

7. 结合条件的聚合操作

示例代码11:根据条件过滤后聚合

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5),
    'D': ['pandasdataframe.com', 'other', 'pandasdataframe.com', 'other', 'pandasdataframe.com']
})

# 根据条件过滤后聚合
filtered = df[df['D'] == 'pandasdataframe.com']
result = filtered.agg('sum')
print(result)

Output:

pandas agg函数详细介绍

示例代码12:组合多个条件进行聚合

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5),
    'D': ['pandasdataframe.com', 'other', 'pandasdataframe.com', 'other', 'pandasdataframe.com']
})

# 组合多个条件进行聚合
filtered = df[(df['D'] == 'pandasdataframe.com') & (df['A'] > 0.5)]
result = filtered.agg('sum')
print(result)

Output:

pandas agg函数详细介绍

8. 使用字典指定列的聚合方式

示例代码13:使用字典为不同列指定不同的聚合函数

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5)
})

# 使用字典为不同列指定不同的聚合函数
agg_dict = {'A': 'sum', 'B': 'mean', 'C': 'max'}
result = df.agg(agg_dict)
print(result)

Output:

pandas agg函数详细介绍

示例代码14:在分组聚合中使用字典

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'Key': ['A', 'B', 'A', 'B', 'A'],
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5)
})

# 在分组聚合中使用字典指定不同列的聚合方式
grouped = df.groupby('Key')
agg_dict = {'A': 'sum', 'B': 'mean', 'C': 'max'}
result = grouped.agg(agg_dict)
print(result)

Output:

pandas agg函数详细介绍

9. 聚合与转换结合使用

示例代码15:聚合后应用转换函数

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5)
})

# 定义转换函数
def scale(x):
    return (x - x.mean()) / x.std()

# 聚合后应用转换函数
result = df.agg(['sum', 'mean']).transform(scale)
print(result)

Output:

pandas agg函数详细介绍

示例代码16:在分组聚合后应用转换

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'Key': ['A', 'B', 'A', 'B', 'A'],
    'Value': np.random.rand(5)
})

# 分组聚合后应用转换
grouped = df.groupby('Key')
result = grouped['Value'].agg('sum').transform(lambda x: x * 10)
print(result)

Output:

pandas agg函数详细介绍

10. 结合其他pandas功能使用agg

示例代码17:结合filter使用agg

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5),
    'D': ['pandasdataframe.com', 'other', 'pandasdataframe.com', 'other', 'pandasdataframe.com']
})

# 使用filter和agg结合
result = df.filter(items=['A', 'B']).agg('sum')
print(result)

Output:

pandas agg函数详细介绍

示例代码18:结合query使用agg

import pandas as pd
import numpy as np

df = pd.DataFrame({
    'A': np.random.rand(5),
    'B': np.random.rand(5),
    'C': np.random.rand(5),
    'D': ['pandasdataframe.com', 'other', 'pandasdataframe.com', 'other', 'pandasdataframe.com']
})

# 使用query和agg结合
result = df.query('D == "pandasdataframe.com"').agg({'A': 'sum', 'B': 'mean'})
print(result)

Output:

pandas agg函数详细介绍

11. 总结

在本文中,我们详细介绍了pandas的agg函数,展示了其在数据聚合中的多样性和灵活性。通过多个示例,我们探讨了如何使用agg函数进行基本聚合、分组聚合、使用自定义函数、结合条件过滤以及与其他pandas功能的结合使用。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程