aggfunc 是用于聚合数据的功能,通常在 Pandas 中用于数据透视表(pivot table)或 GroupBy 操作中。让我们来详细探讨一下 aggfunc 和它的不同用法。

  1. sum:
  • sum 是 Python 内置的函数,用于计算一组数值的总和。
  • 在数据透视表或 GroupBy 操作中,aggfunc=sum 将对每个分组的数值列求和。
  • 例如,对于你提供的 DataFrame,df.pivot_table(index="col0", values="col1", aggfunc=sum) 将返回每个不同的 "col0" 值对应的 "col1" 列的总和。
  1. "sum":
  • "sum" 是字符串,表示使用字符串指定的聚合函数。
  • 在数据透视表或 GroupBy 操作中,aggfunc="sum"aggfunc=sum 的效果相同,都是对每个分组的数值列求和。
  1. np.sum:
  • np.sum 是 NumPy 库中的函数,用于计算数组或矩阵的总和。
  • 在数据透视表或 GroupBy 操作中,aggfunc=np.sum 与前两者的效果相同,都是对每个分组的数值列求和。

综上所述,这三种用法在计算总和时是等效的。你可以根据个人喜好选择其中之一。¹²

如果你对 aggfunc 的更多用法感兴趣,可以查阅 Pandas 文档以获取详细信息。¹

源: 与必应的对话, 2024/3/20 (1) Python - Pandas系列-最强的agg解释! - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/370851569. (2) Pandas知识点-详解聚合函数agg - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/547960957. (3) python中的数据透视表pivot_table参数详解 - 知乎 - 知乎专栏. https://zhuanlan.zhihu.com/p/127811410.


import pandas as pd
import numpy as np

df = pd.DataFrame([
    ["a", 1],
    # ["a", ""],
    ["a", np.nan],
    ["a", None]
])
df.columns = [fr"col{i}" for i in df.columns]

for i in [sum, "sum", np.sum]:
    print(
        df.pivot_table(
            index=df.columns[0],
            values=df.columns[1],
            aggfunc=i
        ).values
    )