利用合适的工具,在统计学理论的支撑下,对数据进行一定程度的预处理,结合具体业务分析数据,帮助相关业务部门监控、定位、分析、解决问题,从而帮助企业高效决策,提高经营效率,发现业务机会点。
现状分析: 运营情况、业务构成,日常报表
原因分析: 通过专题分析完成,根据企业运营情况选择针对某一现状进行原因分析。
预测分析: 通过专题分析完成,通常在制订企业季度、年度计划时进行。
● 描述数据整体情况:
又称统计绝对数,是反映某一数据指标的整体规模大小,总量多少的指标。
说明现象之间数量对比关系的指标
表示数据分布的离散程度,若指标较大,说明数据波动大。
相关系数r(范围[-1,1], r的绝对值越大,相关性越强)
● 明确目的:
要明确数据分析的目的,即希望通过数据分析得出什么。
例如,希望通过数据分析发现流失用户都有哪些特征,希望通过数据分析找到销量上涨的原因。
● 获取数据:
需要什么指标
需要什么时间段的数据
这些数据都存在哪个数据库或哪个表中
怎么提取,是自己写Sql还是可以直接从ERP系统中下载
● 处理数据:
常见的特殊数据主要有以下几种。
异常数据。结合具体业务处理,删除或者作为重点研究对象
重复数据:删除
缺失数据。如果缺失比例高于30%,删除。低于30%,填充处理,即用0、均值或者众数等进行填充。
测试数据:删除
● 分析数据:
下钻法
例如当我们发现某一天的销量突然上涨/下滑时,我们会去看是哪个地区的销量上涨/下滑,进而再看哪个品类、哪个产品的销量出现上涨/下滑,层层下钻,最后找到问题产生的真正原因。
● 验证结论:
通过数据分析出来的结论也不一定成立,所以我们要把数据分析和实际业务相联系,去验证结论是否正确。例如,做新媒体数据分析,你通过分析发现情感类文章的点赞量、转发量更高,这只是你的分析结论,但是这个结论正确吗?你可以再写几篇情感类文章验证一下。
● 创建带有目录的jupyter文件方式
Step1:将代码框格式选择为Heading。
Step2:直接在代码框输入不同级别的标题,1个#表示一级标题,2个#表示二级标题,3个#表示三级标题(注意,#与标题文字之间是有空格的),标题级别随着#数量的增加依次递减。
● str.format( )
浮点数、百分数、文字
# str.format()
print('{}这本书定价{:.2f},中国有{:.2%}正在学习这本书'.format('《数据分析》',12.3456,0.50369))
● 链接 复制
# 字符串
# 字符串连接、复制、获取长度
print('王' + '俊凯')
print('新年快乐'*3)
print(len('新年快乐'))
● 查找
当用find查找某一字符是否存在于某个字符串中时,如果存在则返回该字符的具体位置,如果不存在则返回-1
print('快乐' in '新年快乐')
print('新年' not in '新年快乐')
print('快乐'.find('新年快乐'))
● 普通索引
● 切片索引
str = 'H,a,p,p,y'
print(str[1])
print(str[1:3])
● 分隔
# 字符串分隔 split()函数
# 分隔后的值以列表形式返回
new_str = str.split(",")
print(new_str)
● 移除
# strip()函数
# 用来移除字符串首尾的指定字符
# 默认移除字符串首尾的空格或换行符
# 移除指定字符
newstr = '新年快乐'.strip('乐')
print(newstr)
可变的数据类型
# 列表
lis_1 = ['b',2]
# 合并
lis_2 = ['a',1]
lis_1.extend(lis_2)
print(lis_1)
● 列表新增
# 新增
lis_1.append('e')
print(lis_1)
lis_1.insert(0,'r')
print(lis_1)
# 获取出现次数
print(lis_1.count('a'))
# 获取值出现的位置
print(lis_1.index('a'))
● 索引
# 索引
# 普通索引
print(lis_1[0])
# 切片索引,左闭右开
print(lis_1[:2])
print(lis_1)
● 删除
# 删除
# pop删除指定位置的值
# remove删除指定元素
lis_1.pop(1)
print(lis_1)
lis_1.remove(2)
print(lis_1)
● 排序
# 排序
lis_1.sort()
print(lis_1)
元组的元素不能修改,
获取长度:len()
索引:普通索引、切片索引
与列表相互转换 list() tuple()
zip() 将可迭代的对象(例如列表,元组)作为参数,打包成一个个元组,返回由这些元组组成的列表,通常与for循环搭配使用
tup_1 = (1,2,3)
tup_2 = (4,5,6)
for ii in zip(tup_1,tup_2):
print(ii)
list_1 = [1,2,3]
list_2 = [4,5,6]
for ii in zip(list_1,list_2):
print(ii)
算术运算符、比较运算符、逻辑运算符
for循环、while循环
if else elif
普通函数
匿名函数
lambda arg1,arg2,… : expression
f = lambda x,y:x+y
f(2,3)
9.1 列表生成式
# 列表生成式 不必再写多个for循环嵌套
[i*2 for i in list_2]
[i+j for i in list_1 for j in list_2]
9.2 map函数
# map函数
# map(function,agrs)
list(map(lambda x,y:x*y,[1,2,3],[1,2,3]))
类似于一维数组的对象,由一组数据及一组与之相关的数据标签(即索引)组成。
直接传入一个列表会使用默认索引,不指定数据标签,那么Series会默认使用从0开始的数做数据标签,也可以通过设置index参数来自定义索引。
获取索引 index
获取值 values