aggfunc
是用于聚合数据的功能,通常在 Pandas 中用于数据透视表(pivot table)或 GroupBy 操作中。让我们来详细探讨一下 aggfunc
和它的不同用法。
sum
:
sum
是 Python 内置的函数,用于计算一组数值的总和。- 在数据透视表或 GroupBy 操作中,
aggfunc=sum
将对每个分组的数值列求和。 - 例如,对于你提供的 DataFrame,
df.pivot_table(index="col0", values="col1", aggfunc=sum)
将返回每个不同的 "col0" 值对应的 "col1" 列的总和。
"sum"
:
"sum"
是字符串,表示使用字符串指定的聚合函数。- 在数据透视表或 GroupBy 操作中,
aggfunc="sum"
与aggfunc=sum
的效果相同,都是对每个分组的数值列求和。
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
)