专业编程基础技术教程

网站首页 > 基础教程 正文

wps/excel函数技巧:reduce+groupby函数实现describe统计功能

ccvgpt 2024-12-11 11:04:15 基础教程 12 ℃


如图,如果我们面对成千上万条记录,如何能得到数据的概览?在python中的pandas里面有一个describe函数可以实现此功能,它能描述出数值类型数据(包括整型和浮点型)的四分位值、方差等数据,可以呈现出数据的大体结构,下面我们用wps公式试写一个这样的函数:

wps/excel函数技巧:reduce+groupby函数实现describe统计功能

=LET(

row_num,ROWS(FILTER(A:I,A:A<>"")), #统计有效记录的条数

DROP(REDUCE("",A1:I1,LAMBDA(m,n,VSTACK(m,GROUPBY(EXPAND(n,row_num-1,,n),OFFSET(n,1,,row_num-1), #通过groupby函数实现各字段数据的统计

LAMBDA(x,IFS( #分数值、文本、逻辑三种不同类型的字段,统计各种字段的数据

TYPE(OFFSET(n,1,))=1,TEXTJOIN(";",1,"数据类型:数值","平均值:"&TEXT(AVERAGE(LEN(x)),"0.00"),"数量:"&SUM(IF(x="",0,1)),"四分位数:"&QUARTILE(x,SEQUENCE(5)-1)),

#数值型统计,统计四分位值为主

TYPE(OFFSET(n,1,))=2,TEXTJOIN(";",1,"数据类型:文本","平均字符:"&TEXT(AVERAGE(LEN(x)),"0.00"),"数量:"&SUM(IF(x="",0,1)),"最长字符:"&MAX(LEN(x))),

#文本型统计,统计字符长度为主

TYPE(OFFSET(n,1,))=4,TEXTJOIN(";",1,"数据类型:逻辑","平均字符:"&TEXT(AVERAGE(LEN(x)),"0.00"),"数量:"&SUM(IF(x="",0,1)),"最长字符:"&MAX(LEN(x))))),,0)))),1))

#逻辑型统计,统计字符长度为主

公式思路:本例的核心思路是groupby中函数部分的处理,它将不同的统计函数结果用字符串的形式连接到了一起。

最近发表
标签列表