pandas agg函数的详细介绍与应用
参考:pandas agg
Pandas 是一个强大的 Python 数据分析工具库,它提供了大量的功能来便捷地处理和分析数据。其中,agg
函数是一个非常有用的工具,它允许用户对数据进行多种聚合操作,可以极大地简化数据处理过程。本文将详细介绍 agg
函数的使用方法,并通过多个示例展示其在实际数据处理中的应用。
1. agg函数简介
在 pandas 中,agg
是 aggregate
的缩写,意为“聚合”。该函数的主要用途是对数据集进行一系列的聚合操作,比如求和、平均、最大值、最小值等。agg
函数可以用在 DataFrame
或 Series
对象上,支持多种不同的输入,包括函数、函数名的字符串、函数列表或字典。
2. agg函数的基本用法
示例代码 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(np.sum)
print(result)
示例代码 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([np.sum, np.mean, np.std])
print(result)
示例代码 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)
})
# 对不同列应用不同的聚合函数
result = df.agg({'A': np.sum, 'B': np.mean, 'C': np.std})
print(result)
3. 在分组数据上使用agg
agg
函数在与 groupby
结合使用时尤为强大,它可以对分组后的数据执行多种聚合操作。
示例代码 4: 分组后应用单个聚合函数
import pandas as pd
import numpy as np
df = pd.DataFrame({
'Key': ['A', 'B', 'A', 'B', 'A'],
'Value': np.random.rand(5),
'Data': np.random.rand(5)
})
# 分组后应用单个聚合函数
grouped = df.groupby('Key').agg(np.sum)
print(grouped)
示例代码 5: 分组后应用多个聚合函数
import pandas as pd
import numpy as np
df = pd.DataFrame({
'Key': ['A', 'B', 'A', 'B', 'A'],
'Value': np.random.rand(5),
'Data': np.random.rand(5)
})
# 分组后应用多个聚合函数
grouped = df.groupby('Key').agg([np.sum, np.mean])
print(grouped)
示例代码 6: 分组后对不同列应用不同的聚合函数
import pandas as pd
import numpy as np
df = pd.DataFrame({
'Key': ['A', 'B', 'A', 'B', 'A'],
'Value': np.random.rand(5),
'Data': np.random.rand(5)
})
# 分组后对不同列应用不同的聚合函数
grouped = df.groupby('Key').agg({'Value': np.sum, 'Data': np.mean})
print(grouped)
4. 使用自定义函数进行聚合
agg
函数的一个重要特性是它可以接受自定义函数,这为数据分析提供了极大的灵活性。
示例代码 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_custom_function(x):
return np.sum(x) * 0.5
# 使用自定义函数进行聚合
result = df.agg(my_custom_function)
print(result)
Output:
示例代码 8: 在分组数据上使用自定义函数
import pandas as pd
import numpy as np
df = pd.DataFrame({
'Key': ['A', 'B', 'A', 'B', 'A'],
'Value': np.random.rand(5),
'Data': np.random.rand(5)
})
# 定义一个自定义聚合函数
def my_custom_function(x):
return np.sum(x) * 0.5
# 使用自定义函数进行聚合
grouped = df.groupby('Key').agg(my_custom_function)
print(grouped)
5. 总结
在本文中,我们详细介绍了 pandas 的 agg
函数,展示了其在单独使用以及与 groupby
结合使用时的多种应用场景。通过这些示例,可以看到 agg
函数在数据处理中的强大功能和灵活性。无论是进行简单的聚合还是复杂的自定义聚合操作,agg
函数都能有效地帮助数据分析师简化代码,提高数据处理效率。