summarize() 方法
基于一个或多个列中的相同值对数据帧中的行进行分组。统计每个组中的行数,并且为每个组小计指定的数值列。
语法
数据帧名称.summarize(on = ["键列", "...n"], calculate = ["数值列", "...n"]|None, statistics = True|False)
参数
名称 | 描述 |
---|---|
on = ["键列", "...n"] |
要汇总的一个或多个键列。 如果您按一个以上的列进行汇总,则会创建嵌套组。嵌套顺序遵循您指定列的顺序。 键列被定位于汇总数据帧的最左侧位置。 说明 在将数据汇总到不同的组内之前,summarize() 方法自动按键列对数据帧进行排序。对于一个或多个键列中的每组相同值或相同值组合,输出数据帧都包含单个唯一组。 |
calculate = ["数值列", "...n"] | None 可选 |
如果您省略该参数,则不会小计任何列。 |
statistics = True | False 可选 |
如果您指定 True,则会为每个小计列计算下列统计值(按组分解):
如果您省略 statistics,则使用默认的 False。 |
返回
HCL 数据帧。
示例
每个客户的交易总金额
您按 Customer_Number 列汇总应收帐款数据帧,并且小计 Trans_Amount 列。输出按客户分组,并且包括每个客户的交易总金额:
customer_total = accounts_receivable.summarize(on = ["Customer_Number"], calculate = ["Trans_Amount"], statistics = False)
每个客户每个交易日期的交易总金额
您按 Customer_Number 列和 Trans_Date 列汇总应收帐款数据帧。您对 Trans_Amount 列进行小计。
输出按客户分组,在每个客户内又按日期分组,并且包括每个客户在每个交易日期的交易总金额。
customer_total_by_date = accounts_receivable.summarize(on = ["Customer_Number", "Trans_Date"], calculate = ["Trans_Amount"], statistics = False)
用每个客户每个交易日期的统计值合计交易金额
此示例与上面的示例相同,但您为 statistics 参数指定了 True。
除了计算每个客户每个交易日期的交易金额小计以外,您还会计算每个客户每个日期的各种统计值:
customer_stats_by_date = accounts_receivable.summarize(on = ["Customer_Number", "Trans_Date"], calculate = ["Trans_Amount"], statistics = True)
备注
工作原理
summarize() 方法对在某个列中具有相同值或者在多个列中具有相同值组合的行进行分组。输出数据帧为每个组包含单个行,并且包含该源数据帧中属于该组的行数的计数。该输出还会计算属于每个组的数据帧行的百分比。
小计和统计信息:输出结果中的列名称和计算
您可以使用 calculate 和 statistics 参数对您指定的任何小计列执行统计计算。在输出结果中,统计计算的结果按组进行细分。
calculate 参数
输出数据帧中的列名称 | 对小计列执行的计算 |
---|---|
小计列名称 + _sum | 每个组的小计值 |
小计列名称 + _sum% |
每个组的小计(以列合计的百分比表示) |
statistics 参数
输出数据帧中的列标题 | 对小计列执行的计算 |
---|---|
小计列名称 + _min |
每个组的最小值 |
小计列名称 + _max |
每个组的最大值 |
小计列名称 + _mean |
每个组的平均值 |
小计列名称 + _median |
每个组的中值
|
小计列名称 + _std |
每个组的标准偏差 |
小计列名称 + _mode |
每个组中最常出现的值 如果出现相等值,则显示最低值。如果没有值出现一次以上,则显示该列中的最小值。 |
小计列名称 + _q25 |
每个组的第一个四分位数值(较低的四分位数值) |
小计列名称 + _q75 |
每个组的第三个四分位数值(较高的四分位数值) |