pandas agg函数
Pandas 是一个强大的 Python 数据分析库,它提供了大量的功能来处理和分析数据。其中,agg
函数是一个非常有用的工具,它允许用户对数据进行聚合操作。本文将详细介绍 agg
函数的使用方法,并通过多个示例展示其在数据分析中的应用。
1. agg
函数简介
agg
函数(也称为聚合函数)是 pandas 中用于聚合计算的函数。它可以对数据集进行多种统计分析,比如求和、平均值、最大值、最小值等。agg
函数可以作用于 DataFrame 的整体,也可以针对特定的列进行计算。
2. 基本使用
示例代码 1:单列聚合
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': np.random.randn(50),
'B': np.random.rand(50),
'C': np.random.randn(50),
'D': np.random.rand(50),
'E': ['pandasdataframe.com']*50
})
# 对列 A 使用 agg 函数求平均值
result = df['A'].agg('mean')
print(result)
Output:
示例代码 2:多列聚合
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': np.random.randn(50),
'B': np.random.rand(50),
'C': np.random.randn(50),
'D': np.random.rand(50),
'E': ['pandasdataframe.com']*50
})
# 对多列使用 agg 函数求平均值
result = df[['A', 'B']].agg('mean')
print(result)
Output:
示例代码 3:对整个 DataFrame 使用多个聚合函数
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': np.random.randn(50),
'B': np.random.rand(50),
'C': np.random.randn(50),
'D': np.random.rand(50),
'E': ['pandasdataframe.com']*50
})
# 对整个 DataFrame 使用多个聚合函数
result = df.agg(['sum', 'min'])
print(result)
Output:
3. 使用自定义函数进行聚合
示例代码 4:使用自定义函数
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': np.random.randn(50),
'B': np.random.rand(50),
'C': np.random.randn(50),
'D': np.random.rand(50),
'E': ['pandasdataframe.com']*50
})
# 定义一个自定义聚合函数
def my_custom_function(x):
return np.max(x) - np.min(x)
# 使用自定义函数进行聚合
result = df['A'].agg(my_custom_function)
print(result)
示例代码 5:对多列使用自定义函数
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': np.random.randn(50),
'B': np.random.rand(50),
'C': np.random.randn(50),
'D': np.random.rand(50),
'E': ['pandasdataframe.com']*50
})
# 使用自定义函数对多列进行聚合
result = df[['A', 'B']].agg(my_custom_function)
print(result)
4. 使用 lambda 函数进行聚合
示例代码 6:使用 lambda 函数
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': np.random.randn(50),
'B': np.random.rand(50),
'C': np.random.randn(50),
'D': np.random.rand(50),
'E': ['pandasdataframe.com']*50
})
# 使用 lambda 函数进行聚合
result = df['A'].agg(lambda x: x.max() - x.min())
print(result)
Output:
示例代码 7:对整个 DataFrame 使用 lambda 函数
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': np.random.randn(50),
'B': np.random.rand(50),
'C': np.random.randn(50),
'D': np.random.rand(50),
'E': ['pandasdataframe.com']*50
})
# 使用 lambda 函数对整个 DataFrame 进行聚合
result = df.agg(lambda x: x.max() - x.min())
print(result)
5. 结合多个聚合函数
示例代码 8:结合内置和自定义聚合函数
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': np.random.randn(50),
'B': np.random.rand(50),
'C': np.random.randn(50),
'D': np.random.rand(50),
'E': ['pandasdataframe.com']*50
})
# 结合使用内置和自定义聚合函数
result = df['A'].agg(['mean', np.sum, lambda x: x.max() - x.min()])
print(result)
示例代码 9:对多列使用结合的聚合函数
import pandas as pd
import numpy as np
# 创建示例 DataFrame
df = pd.DataFrame({
'A': np.random.randn(50),
'B': np.random.rand(50),
'C': np.random.randn(50),
'D': np.random.rand(50),
'E': ['pandasdataframe.com']*50
})
# 对多列使用结合的聚合函数
result = df[['A', 'B']].agg(['mean', np.sum, lambda x: x.max() - x.min()])
print(result)
6. 使用 agg
函数处理时间序列数据
示例代码 10:时间序列数据聚合
import pandas as pd
import numpy as np
# 创建时间序列数据
date_rng = pd.date_range(start='1/1/2022', end='1/10/2022', freq='D')
df = pd.DataFrame(date_rng, columns=['date'])
df['data'] = np.random.randint(0, 100, size=(len(date_rng)))
df.set_index('date', inplace=True)
# 使用 agg 函数进行时间序列数据聚合
result = df.agg('sum')
print(result)
Output:
7. 总结
在本文中,我们详细介绍了 pandas 的 agg
函数,展示了其在单列、多列以及整个 DataFrame 上的应用。我们还探讨了如何使用自定义函数和 lambda 函数进行聚合,以及如何结合多个聚合函数来获取更丰富的数据分析结果。通过这些示例,可以看到 agg
函数在数据处理和分析中的强大功能和灵活性。