Python基本数据统计分析

  • 格式:pdf
  • 大小:4.58 MB
  • 文档页数:89

基本数据统计分析Python 数据处理、分析、可视化与数据化运营06本章学习目标了解描述性统计分析各个指标的含义掌握交叉对比和趋势分析的基本方法与技巧掌握结构与贡献分析的应用场景以及实现方法重点分组与聚合分析的常用方法掌握相关性分析的主要方法以及如何解读相关性分析结果了解漏斗、路径和归因分析基本概念准备数据使用Excel的DMEO数据本节所用数据为公用数据,读取excel的demo数据。

用法示例:import pandas as pd # ①import numpy as np # ②raw_data = pd.read_excel('demo.xlsx') # ③print(raw_data.head(3)) # ④准备数据先将province转换为字符串在字段中的PROVINCE 列本身是分类含义,因此将其转换为字符串类型。

用法示例:raw_data['PROVINCE'] = raw_data['PROVINCE'].astype(str)准备数据使用describe查看描述性统计分析信息用法示例:desc_data = raw_data.describe(include='all').T # ①获得所有字段的描述信息desc_data['polar_distance'] = desc_data['max']- desc_data['min'] # ②得到极差(或极距)desc_data['IQR'] = (desc_data['75%']-desc_data['25%'])/2 # ③计算四分位差desc_data['days_int'] = desc_data['last']-desc_data['first'] # ④基于last和first差值计算日期间隔desc_data['dtype'] = raw_data.dtypes # ⑤获取所有列的字段类型desc_data['all_count'] = raw_data.shape[0] # ⑥获取所有列的总记录数量print(desc_data.columns) # ⑦准备数据使用describe查看描述性统计分析信息通用描述信息通用描述信息是指对所有数据字段的概要描述示例代码:print(desc_data[['all_count','count','dtype']])集中性趋势数值型字段的均值、中位数和四分位数数值型字段的集中性趋势的常用描述指标包括均值、中位数和四分位数(注意:四分位数指的不是一个数)print(desc_data.loc[['AMOUNT','VISITS'],['25%', '50%', '75%','mean']])集中性趋势非数值型字段的唯一值、众数和频数非数值型包括布尔型、字符串型和日期型三类,数据分析师经常使用唯一值、众数和频数描述集中性趋势。

print(desc_data.loc[['DATETIME','PROVINCE','CATE','IS_PRO'],['unique','top','freq']])离散性趋势数值型字段的标准差、最小值、最大值、极差、四分位差数值型字段的离散趋势经常用标准差、最小值、最大值、极差、四分位差表示print(desc_data.loc[['AMOUNT','VISITS'],['std','min','max','polar_distance','IQR']])6.1 描述性统计分析11离散性趋势日期型字段的开始日期、结束日期和日期间隔对非数值型字段而言,很少描述其离散性趋势,但日期类字段却拥有自身的特殊性。

它拥有自己的开始日期项,并可以基于日期项做一定程度的数值计算print(desc_data.loc[['DATETIME'],['first','last','days_int']])概念对比和趋势是分析事物对象,并得到结论的基本且重要的方法有比较才能产生差异,也才有好坏优劣之分基于比较的思维构成了数据分析的基础逻辑对比和趋势分别从横向和纵向两个维度对特定事物做分析交叉对比分析应用示例❑所有广告营销渠道中哪些效果最好❑全部商品销售中哪些品类卖的多❑哪些类型的会员活跃度更高交叉对比分析使用多个指标定量描述事物❑在极少数情况下,可以通过单一指标对事物做定量分析和结论判定,例如品类A比品类B在总利润贡献上更好,因此我们可以说品类A比品类B表现更好或更有价值。

❑更多情况下,我们在评估事物好坏时,会使用多个指标从多个角度去定量描述。

交叉对比分析使用多个指标定量描述事物示例:如何评估渠道质量,评估指标的选择:q基本行为指标:平均停留时间、访问深度q目标转化指标:目标转化率、订单转化率q复购:复购率q会员指标:新会员引入量、老会员激活量交叉对比分析使用多个指标定量描述事物示例:我们要分析不同的大区,在是否促销上是否有差异性,同时评估指标包括访问量和订单数量raw_data.pivot_table(values=['AMOUNT','VISITS'],index=['CATE'],columns='IS_PRO',aggfunc=np.mean)其中:(1)values:分类汇总的计算指标列。

(2) index:分类汇总的汇总维度列,要汇总多级维度可以传入列表。

(3) columns:基于特定的列名,对指标做汇总计算。

(4) aggfunc:分类汇总计算方法,可传入任意有效计算函数或对象。

交叉对比分析交叉趋势分析使用多个指标定量描述事物示例:的数据表现较好。

这时使用趋势分析法,分析不同时间周期下的表现raw_data['MONTH'] = raw_data['DATETIME'].map(lambda i: i.month) # ①从每个日期中获得month属性得到月份结果overseas_north = raw_data[raw_data['CATE']=='海外区'] # ②过滤出仅包含海外区的数据print(overseas_north.pivot_table(values=['AMOUNT','VISITS'],index=['MONTH'],columns='IS_PRO',aggfu nc=np.mean)) # ③建立数据透视表交叉趋势分析q海外区的VISITS数据表现相对稳定且良好,仅在2/3/4月份较差。

q海外区的AMOUNT数据表现极不稳定,仅在4/5/9月份表现好,其他时间都低于海外区的整体均值,而最高的几个月份拉高了整个均值。

q在IS_PRO的作用上,VISITS和AMOUNT都显示出来比较强的随机性,规律不具有完整且一致性,表现为不同月份的贡献表现不一,且变化幅度差异较大。

6.3 结构与贡献分析20概念结构与贡献分析是对一组数据中不同元素的构成、比例、贡献等方面的分析它可以快速获得整体中最主要构成要素信息应用示例公司最主要的销售商品集中在什么品类上,次要品类是哪些全站的会员主要从哪些渠道来占比分析占比分析通过计算不同的元素的比例来评估其贡献度,它是很多深入分析方法的基础用法示例com_data = raw_data.groupby(['PROVINCE'],as_index=False).sum() # ①com_sort = com_data.sort_values(['VISITS'],ascending=False) # ②amount_sum = com_sort['AMOUNT'].sum() # ③visits_sum = com_sort['VISITS'].sum() # ④com_sort['AMOUNT_PER'] = com_sort['AMOUNT']/amount_sum # ⑤com_sort['VISITS_PER'] = com_sort['VISITS']/visits_sum # ⑥print(com_sort.drop(['IS_PRO','MONTH'],axis=1).head()) # ⑦占比分析二八法则分析什么是二八法则在经济学、管理学领域有个经典的“二八法则”,也称为80/20定律、帕累托法则,它的基本含义是在任何一组事物中,最重要的只占其中一小部分(比例大概20%),其余80%尽管是多数,却是次要的,因此又称二八定律二八法则分析什么是二八法则这个规律在企业经营中也经常出现,例如企业80%的利润都是20%的头部客户贡献,20%的高价值会员贡献了80%的订单等。

因此,我们需要重点关注TOP 20%的对象以抓住经营重点。

二八法则分析用法示例amount_data = com_sort.sort_values(['AMOUNT_PER'],ascending=False) # ①amount_data['CUM_AMOUNT_PER'] = amount_data['AMOUNT_PER'].cumsum() # ②对amount_data的AMOUNT_PER列使用cumsum()函数做累计汇总,这样每个后续的AMOUNT_PER记录的值都是之前AMOUNT_PER的汇总print(amount_data[['PROVINCE','AMOUNT_PER','CUM_AMOUNT_PER']].round(2).head()) # ③二八法则分析用法示例(初始数据结果)二八法则分析用法示例amount_data['20_80']=pd.cut(amount_data['CUM_AMOUNT_PER'],bins=[0,0.8,1],labels=['top20%','other s80%']) # ①对CUM_AMOUNT_PER做切分,切分的数据边界为0/0.8和1,切分后的数据分别标记为top20%和others80%print(amount_data[['PROVINCE','AMOUNT_PER','CUM_AMOUNT_PER','20_80']].round(2).head(10)) # ②二八法则分析用法示例(二八法则结果)二八法则分析用法示例(二八法则结果)ABC分析法什么是ABC分析法ABC分析法是指按照不同的贡献度,将数据依次分为A、B、C三组,从而确定主要影响因素、次要影响因素和一般影响因素。