pandas agg list 详细介绍
在数据分析中,pandas 是一个非常强大的 Python 数据处理库。本文将详细介绍 pandas 中的 agg 函数,这是一个用于聚合计算的函数,可以非常方便地对数据进行汇总分析。agg 函数可以接受一个函数或函数的列表,应用于 DataFrame 的一列或多列,从而实现数据的快速处理和分析。
1. agg 函数基础
agg 函数是 pandas 中用于聚合操作的核心函数之一。它允许用户对数据集进行多种统计汇总。在开始之前,我们首先需要导入 pandas 库,并创建一个简单的 DataFrame 作为示例。
示例代码 1: 创建 DataFrame
import pandas as pd
data = {
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
}
df = pd.DataFrame(data)
print(df)
Output:

示例代码 2: 使用 agg 进行单一函数聚合
import pandas as pd
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
})
result = df.agg('sum')
print(result)
Output:

2. 使用不同的聚合函数
agg 可以使用不同的聚合函数来处理数据,如 sum, mean, max, min 等。
示例代码 3: 使用多个聚合函数
import pandas as pd
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
})
result = df.agg(['sum', 'mean'])
print(result)
Output:

示例代码 4: 对指定列使用聚合函数
import pandas as pd
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
})
result = df[['A', 'B']].agg('mean')
print(result)
Output:

3. 使用自定义函数进行聚合
agg 也支持使用自定义函数进行数据聚合,这为数据分析提供了极大的灵活性。
示例代码 5: 使用自定义函数聚合
import pandas as pd
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
})
def my_custom_function(x):
    return x.max() - x.min()
result = df.agg(my_custom_function)
print(result)
Output:

4. 在不同的轴上应用聚合
agg 函数可以在不同的轴上应用,例如,可以在行或列上进行聚合。
示例代码 6: 在不同轴上应用聚合
import pandas as pd
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
})
result = df.agg('sum', axis=1)
print(result)
Output:

5. 使用字典进行列特定的聚合
当需要对不同的列应用不同的聚合函数时,可以使用字典来指定。
示例代码 7: 使用字典进行列特定的聚合
import pandas as pd
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
})
result = df.agg({'A': 'sum', 'B': 'mean', 'C': 'max'})
print(result)
Output:

6. 结合 groupby 使用 agg
agg 函数常与 groupby 结合使用,以对分组后的数据进行聚合操作。
示例代码 8: 结合 groupby 使用 agg
import pandas as pd
df = pd.DataFrame({
    'Key': ['A', 'B', 'A', 'B'],
    'Data': [1, 2, 3, 4],
    'Value': [5, 6, 7, 8]
})
result = df.groupby('Key').agg('sum')
print(result)
Output:

7. 多函数多列聚合
可以对一个 DataFrame 使用多个聚合函数,并指定这些函数应用于哪些列。
示例代码 9: 多函数多列聚合
import pandas as pd
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
})
result = df.agg({'A': ['sum', 'min'], 'B': ['mean', 'max']})
print(result)
Output:

8. 使用 agg 进行复杂的数据转换
agg 不仅限于简单的统计计算,还可以用于更复杂的数据转换。
示例代码 10: 使用 agg 进行复杂的数据转换
import pandas as pd
df = pd.DataFrame({
    'A': [1, 2, 3, 4],
    'B': [5, 6, 7, 8],
    'C': [9, 10, 11, 12]
})
def transform(x):
    return (x - x.mean()) / x.std()
result = df.agg(transform)
print(result)
Output:

总结
通过上述示例,我们可以看到 pandas 的 agg 函数是一个非常强大的工具,它可以应用于数据的各种聚合和转换任务。无论是简单的数据汇总还是复杂的自定义操作,agg 都能提供有效的解决方案。
极客笔记