Pandas 中的 agg() 和 lambda 函数的应用
在数据分析中,Pandas 是一个非常强大的工具,它提供了大量的功能来方便数据处理和分析。本文将详细介绍如何在 Pandas 中使用 agg()
函数结合 lambda
表达式来进行数据聚合和处理。我们将通过一系列的示例代码来展示这些技术的应用。
1. 理解 agg() 函数
在 Pandas 中,agg()
函数是一个用于聚合操作的方法,它允许用户对数据集进行多种统计汇总。使用 agg()
可以一次性应用多个聚合操作,也可以对不同的列应用不同的聚合函数。
示例代码 1: 单列聚合
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]
}
df = pd.DataFrame(data)
result = df['A'].agg(lambda x: x.max())
print(result)
Output:
示例代码 2: 多列聚合
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]
}
df = pd.DataFrame(data)
result = df.agg({'A': lambda x: x.min(), 'B': lambda x: x.sum()})
print(result)
Output:
2. 使用 lambda 表达式
lambda
表达式是 Python 中的匿名函数,它允许快速定义简单的函数,常用于简化代码编写。在 Pandas 的 agg()
中使用 lambda
表达式可以灵活地定义聚合逻辑。
示例代码 3: 使用 lambda 表达式计算平均值
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]
}
df = pd.DataFrame(data)
result = df.agg(lambda x: x.mean())
print(result)
Output:
示例代码 4: 结合条件语句的 lambda 表达式
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]
}
df = pd.DataFrame(data)
result = df.agg(lambda x: x[x > 2].sum())
print(result)
Output:
3. 对不同列使用不同的聚合函数
在实际应用中,我们可能需要对数据框的不同列应用不同的聚合函数。Pandas 的 agg()
方法可以通过传递一个字典来实现这一点,其中字典的键是列名,值是应用的函数。
示例代码 5: 对不同列使用不同的聚合函数
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]
}
df = pd.DataFrame(data)
result = df.agg({'A': lambda x: x.max(), 'B': lambda x: x.min()})
print(result)
Output:
示例代码 6: 对同一列使用多个聚合函数
import pandas as pd
data = {
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]
}
df = pd.DataFrame(data)
result = df['A'].agg([lambda x: x.max(), lambda x: x.min()])
print(result)
Output:
4. 聚合后的数据处理
聚合操作后,我们通常需要对结果进行进一步的处理或分析。使用 lambda
表达式可以方便地对聚合结果进行计算和转换。
示例代码 7: 聚合后计算百分比
import pandas as pd
data = {
'A': [10, 20, 30, 40],
'B': [100, 200, 300, 400]
}
df = pd.DataFrame(data)
total = df['A'].sum()
result = df['A'].agg(lambda x: (x / total) * 100)
print(result)
示例代码 8: 聚合后的条件过滤
import pandas as pd
data = {
'A': [10, 20, 30, 40],
'B': [100, 200, 300, 400]
}
df = pd.DataFrame(data)
result = df.agg(lambda x: x[x > 25].sum())
print(result)
Output:
5. 结合其他 Pandas 功能
Pandas 的 agg()
函数可以与其他 Pandas 功能如分组 (groupby
)、排序 (sort_values
) 等结合使用,以实现更复杂的数据分析任务。
示例代码 9: 结合 groupby 使用 agg()
import pandas as pd
data = {
'Category': ['A', 'A', 'B', 'B'],
'Values': [10, 15, 10, 20]
}
df = pd.DataFrame(data)
result = df.groupby('Category').agg({'Values': lambda x: x.mean()})
print(result)
Output:
示例代码 10: 结合 sort_values() 和 agg()
import pandas as pd
data = {
'Category': ['A', 'A', 'B', 'B'],
'Values': [10, 15, 10, 20]
}
df = pd.DataFrame(data)
result = df.sort_values(by='Values').agg({'Values': lambda x: x.max()})
print(result)
Output:
结论
在本文中,我们详终介绍了如何在 Pandas 中使用 agg()
函数和 lambda
表达式来进行数据聚合和处理。通过提供的示例代码,我们展示了这些技术在数据分析中的多样化应用。