描述性分析

        对表中的price做描述性分析。

        Excel、Mysql、PowerBI涉及的函数。

        用PowerBI实现,通过度量值实现,计数:count = COUNT('item'[price]),其他指标类似,点击视觉视图空白处,插入矩阵,再将度量值拖动到矩阵中。

分组分析

简单分组统计

        度量值:price_avg = AVERAGE('item'[price]),再将press拖入行,price_avg拖入值。

分组排序统计

        度量值:item_cnt = COUNT('item'[item_id]),再将press拖入行,item_cnt拖入值,点击字段item_cnt可以按升序/降序排序。

        商品数前五的结果,度量值:item_cnt2 = IF([item_cnt] > 5,[item_cnt])

分组过滤统计

        出版社的商品数大于3的数据,度量值:item_cnt3 = IF([item_cnt] > 3,[item_cnt])

        如果上述方法不能实现商品数前五的的结果和出版社商品数大于3的数据,可以把press提取出来单独做一个表格:出版社 = VALUES('item'[press]),返回的结果是去除重复值的press列,再建立和item的关系,关系字段是press,再将出版社的press拖入行,将item_cnt2和item_cnt3拖入值。

分组去重统计

        统计2020年每月用户登录数,先将login表和日期表建立关联,关联字段是Date。

        度量值:非重复计数 = DISTINCTCOUNT('login'[uid]),把日期表中的年度月份拖动到行,非重复计数拖动到值。

结构分析

简单结构分析

        度量值:count_total1 = CALCULATE([item_cnt],ALL('item'[press])),也可以写作“ALL('item')”,直接去除item所有字段的筛选作用。

        度量值:p = DIVIDE([item_cnt],[count_total1])

组内占比

        将press、item_name拖入行,再点击第四个图标,然后点击设置视觉对象格式,布局和样式预设-布局-表格,勾选重复行标题。

        度量值:组内求和 = CALCULATE([sum],ALLEXCEPT('item','item'[press])),ALLEXCEPT会移除出来press之外其他字段的筛选作用,这里需要根据出版社汇总price,但是不需要根据item_name汇总。

        度量值:组内占比 = DIVIDE([sum],[组内求和])

分布分析

PowerQuery

        点击item表格旁边三个点,选择编辑查询,进入PowerQuery界面。选择添加条件列,添加完成修改labels的数据类型为文本,关闭并应用。把labels拖到行,count拖到值。

计算列

        新建列:labels1 = IF('item'[price] > 100,"(100,+∞)",IF('item'[price] > 50,"(50,100]","(0,50]")),再将labels1拖到行,count拖到值。

度量值

        主页-数据-输入数据,无穷大输入一个比较大的数字代替,这样就新建了一个表格。这个表格和item表是没有建立关系的。

        度量值:

        分组计数 =

        CALCULATE(

            [count],

            FILTER(

                ALL('item'),

                'item'[price] > SELECTEDVALUE('价格分组表'[最小值]) &&

                'item'[price] < SELECTEDVALUE('价格分组表'[最大值])

            )

        )

        SELECTEDVALUE:在指定列中只有一个值时返回该值,否则返回替代结果。是用来检查筛选上下文是否只有一个值的。  把分组拖到行,最小值作为列,确定了唯一值,返回这个值。

        将分组拖到行,分组计数拖到值,就可以得到相同的结果。

交叉分析

        press拖到行,labels拖到列,count拖到值。

矩阵分析

        根据province字段,建立telecom和area表的关系。把area拖到行,cost_avg和flow_avg拖到值。

        度量值:cost_avg = AVERAGE('telecom'[cost])

        度量值:flow_avg = AVERAGE('telecom'[flow])

转化分析

        度量值:uid_count = COUNT('behavior'[uid])

        度量值:

                  

        度量值:rate = DIVIDE([uid_count],[浏览数])

RFM分析

        选择item表旁边的三个点,选择编辑查询,进入PowerQuery界面。选择behavior表格右键引用,筛选出有购买的用户,也就是behavior_type = 3的用户。

        选择合并查询-将查询追加为新查询-选择item进行合并。展开选择price列,重命名为交易金额。

        自定义列输入公式:Date.FromText("20201231"),命名为截止日期。

        按住Ctrl选择date和截止日期两列,选择添加列-日期-减去天数,得到天数差。

        选择分组依据,以uid为分组依据。

        选择uid,按照升序排序。

        添加三列自定义列,分别输入公式:

        r_s = if [r] < List.Average(排序的行[r]) then 2 else 1

        f_s = if [f] > List.Average(排序的行[f]) then 2 else 1

        m_s = if [m] > List.Average(排序的行[m]) then 2 else 1

        [r]表示的是当前行的值,排序的行[r]表示的是名为“排序的行”这个表格中的“r”列,表名是“排序的行”是因为上一步是对排序。

        添加自定义列,rfm_score = 100*[r_s]+10*[f_s]+[m_s]

        rfm_score修改数据类型为整数。关闭并应用。

        度量值:cnt = COUNTROWS('RFM分析')

        拖动rfm_score和type到行,以表格形式布局,cnt拖到值。

留存分析

        选择login,点击编辑查询,进入PowerQuery界面,选择login引用,重命名为留存分析。

        筛选出2020/1/1-2020/1/6的数据,再筛选出登录状态为1的数据,date重命名为new_date。

        再引用login表筛选出2020/1/1-2020/1/7的数据,login(2),date重命名为date2。

        选择留存分析表,合并查询-合并查询,将留存分析和login(2)合并,展开选择date2。

        选中new_date和date2,添加列-日期-减去天数,得到天数差,关闭并应用。

        度量值:day0 = CALCULATE(COUNTROWS('留存分析'),FILTER('留存分析','留存分析'[减法]=0))

        度量值:day1 = CALCULATE(COUNTROWS('留存分析'),FILTER('留存分析','留存分析'[减法]=1))

        度量值:次日留存率 = DIVIDE([day1],[day0])

        拖动new_date到行,如果日期展开了可以右键选择new_date,就可以显示成图片中的格式,day0,day1,次日留存率拖动到值。

  

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐