‘壹’ 数据分析员用python做数据分析是怎么回事,需要用到python中的那些内容,具体是怎么操作的
最近,Analysis with Programming加入了Planet Python。我这里来分享一下如何通过Python来开始数据分析。具体内容如下:
数据导入
导入本地的或者web端的CSV文件;
数据变换;
数据统计描述;
假设检验
单样本t检验;
可视化;
创建自定义函数。
数据导入
1
这是很关键的一步,为了后续的分析我们首先需要导入数据。通常来说,数据是CSV格式,就算不是,至少也可以转换成CSV格式。在Python中,我们的操作如下:
import pandas as pd
# Reading data locally
df = pd.read_csv('/Users/al-ahmadgaidasaad/Documents/d.csv')
# Reading data from web
data_url = "https://raw.githubusercontent.com/alstat/Analysis-with-Programming/master/2014/Python/Numerical-Descriptions-of-the-Data/data.csv"
df = pd.read_csv(data_url)
为了读取本地CSV文件,我们需要pandas这个数据分析库中的相应模块。其中的read_csv函数能够读取本地和web数据。
数据变换
1
既然在工作空间有了数据,接下来就是数据变换。统计学家和科学家们通常会在这一步移除分析中的非必要数据。我们先看看数据(下图)
对R语言程序员来说,上述操作等价于通过print(head(df))来打印数据的前6行,以及通过print(tail(df))来打印数据的后6行。当然Python中,默认打印是5行,而R则是6行。因此R的代码head(df, n = 10),在Python中就是df.head(n = 10),打印数据尾部也是同样道理
9
plt.show(sns.lmplot("Benguet", "Ifugao", df))
创建自定义函数
在Python中,我们使用def函数来实现一个自定义函数。例如,如果我们要定义一个两数相加的函数,如下即可:
def add_2int(x, y):
return x + y
print add_2int(2, 2)
# OUTPUT
4
顺便说一下,Python中的缩进是很重要的。通过缩进来定义函数作用域,就像在R语言中使用大括号{…}一样。这有一个我们之前博文的例子:
产生10个正态分布样本,其中和
基于95%的置信度,计算和;
重复100次; 然后
计算出置信区间包含真实均值的百分比
Python中,程序如下:
import numpy as np
import scipy.stats as ss
def case(n = 10, mu = 3, sigma = np.sqrt(5), p = 0.025, rep = 100):
m = np.zeros((rep, 4))
for i in range(rep):
norm = np.random.normal(loc = mu, scale = sigma, size = n)
xbar = np.mean(norm)
low = xbar - ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))
up = xbar + ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))
if (mu > low) & (mu < up):
rem = 1
else:
rem = 0
m[i, :] = [xbar, low, up, rem]
inside = np.sum(m[:, 3])
per = inside / rep
desc = "There are " + str(inside) + " confidence intervals that contain "
"the true mean (" + str(mu) + "), that is " + str(per) + " percent of the total CIs"
return {"Matrix": m, "Decision": desc}
上述代码读起来很简单,但是循环的时候就很慢了。下面针对上述代码进行了改进,这多亏了Python专家
import numpy as np
import scipy.stats as ss
def case2(n = 10, mu = 3, sigma = np.sqrt(5), p = 0.025, rep = 100):
scaled_crit = ss.norm.ppf(q = 1 - p) * (sigma / np.sqrt(n))
norm = np.random.normal(loc = mu, scale = sigma, size = (rep, n))
xbar = norm.mean(1)
low = xbar - scaled_crit
up = xbar + scaled_crit
rem = (mu > low) & (mu < up)
m = np.c_[xbar, low, up, rem]
inside = np.sum(m[:, 3])
per = inside / rep
desc = "There are " + str(inside) + " confidence intervals that contain "
"the true mean (" + str(mu) + "), that is " + str(per) + " percent of the total CIs"
return {"Matrix": m, "Decision": desc}
‘贰’ 数据分析需要掌握哪些知识
数据分析定义
数据分析是指用适当的统计分析方法对收集来的大量数据进行分析,提取有用信息和形成结论而对数据加以详细研究和概括总结的过程。这一过程也是质量管理体系的支持过程。在实用中,数据分析可帮助人们作出判断,以便采取适当行动。是有组织有目的地收集数据、分析数据,使之成为信息的过程。
数据分析分类
数据分析划分为描述性统计分析、探索性数据分析以及验证性数据分析;其中,探索性数据分析侧重于在数据之中发现新的特征,而验证性数据分析则侧重于已有假设的证实或证伪。
数据分析常用方法
1、PEST分析:
是利用环境扫描分析总体环境中的政治(Political)、经济(Economic)、社会(Social)与科技(Technological)等四种因素的一种模型。这也是在作市场研究时,外部分析的一部分,能给予公司一个针对总体环境中不同因素的概述。这个策略工具也能有效的了解市场的成长或衰退、企业所处的情况、潜力与营运方向。一般用于宏观分析。
2、SWOT分析:
又称优劣分析法或道斯矩阵,是一种企业竞争态势分析方法,是市场营销的基础分析方法之一,通过评价自身的优势(Strengths)、劣势(Weaknesses)、外部竞争上的机会(Opportunities)和威胁(Threats),用以在制定发展战略前对自身进行深入全面的分析以及竞争优势的定位。而此方法是Albert Humphrey所提。
3、5W2H分析:
用五个以W开头的英语单词和两个以H开头的英语单词进行设问,发现解决问题的线索,寻找发明思路,进行设计构思,从而搞出新的发明项目具体:
(1)WHAT——是什么?目的是什么?做什么工作?
(2)WHY——为什么要做?可不可以不做?有没有替代方案?
(3)WHO——谁?由谁来做?
(4)WHEN——何时?什么时间做?什么时机最适宜?
(5)WHERE——何处?在哪里做?
(6)HOW ——怎么做?如何提高效率?如何实施?方法是什么?
(7)HOW MUCH——多少?做到什么程度?数量如何?质量水平如何?费用产出如何?
4、7C罗盘模型:
7C模型包括
(C1)企业很重要。也就是说,Competitor:竞争对手,Organization:执行市场营销或是经营管理的组织,Stakeholder:利益相关者也应该被考虑进来。
(C2)商品在拉丁语中是共同方便共同幸福的意思,是从消费者的角度考虑问题。这也和从消费者开始考虑问题的整合营销传播是一致的,能体现出与消费者相互作用进而开发出值得信赖的商品或服务的一种哲学。经过完整步骤创造出的商品可以称之为商品化。
(C3)成本不仅有价格的意思,还有生产成本、销售成本、社会成本等很多方面。
(C4)流通渠道表达商品在流动的含义。创造出一个进货商、制造商、物流和消费者共生的商业模式。作为流通渠道来说,网络销售也能算在内。
(C5)交流
(C6)消费者
N = 需求(Needs):生活必需品,像水、衣服、鞋。
W = 想法(Wants):想得到的东西,像运动饮料、旅游鞋。
S = 安全(Security):安全性,像核电、车、食品等物品的安全。
E = 教育(Ecation):对消费者进行教育,为了能够让消费者也和企业一样对商品非常了解,企业应该提供给消费者相应的知识信息。
(C7)环境
N = 国内和国际:国内的政治、法律和伦理环境及国际环境,国际关系。
W = 天气:气象、自然环境,重大灾害时经营环境会放生变化,适应自然的经营活动是必要的。像便利店或是部分超市就正在实行。
S = 社会和文化:网络时代的社会、福利及文化环境理所当然应该成为考虑因素。
E = 经济:经济环境是对经营影响最大的,以此理所当然应该成为考虑因素。7C罗盘模型是一个合作市场营销的工具。
5、海盗指标法AARRR:是互联网常用的“用户增长模型”,黑客增长模型:
Acquisition:获取用户
Activation:提高活跃度
Retention:提高留存率
Revenue:获取收入
Refer:自传播
数据分析常用工具
日常数据分析用的最多的还是办公软件尤其excel、word、ppt,数据存储处理可能用到一些数据库结合access用,另外目前一般公司小型关系数据库用mysql的还是比较多免费、轻量级,还有较多的也在用pg。
其次分析师是用一些专业的分析软件spss,sas,自助分析用的BI软件平台如:finebi、tableau等。
finebi
其实想强调的是分析师40%-60%的时间可能会花在数据的获取、处理和准备上,所以最好能会点sql,个人觉得对于分析师与其去了解数据库,不如好好去学下sql,因为sql是标准化的数据查询语言,所有的关系型数据库包括一些开源的数据库甚至各公司内部的数据平台都对它有良好的支持。最后对于第三方的一些数据收集或者一些跨平台的数据处理,包括一些分析可以用finebi。
数据分析流程
有了 这些基础的理论和分析方法后,接下来具体的分析流程可参考:
1.提出问题(需求) 2.结论/假设 3.数据准备 4.数据分析 5.报告生成 结论验证。
我们按照如上的分析步骤来个示例:
XX产品首销,哪些用户最有可能来购买?应该给哪些用户进行营销?
第一步首先是提出了问题,有了需求。
第二步分析问题,提出方案,这一步非常重要,正如上面提到的第二三类的数据分析本身就是一个假设检验的过程,如果这一步不能很好的假设,后续的检验也就无从谈起。主要需要思考下从哪些方面来分析这个问题。
可以从三个方面:(PS:这里对于一些常规的属性比如:性别、年龄、地区分布了这些基本,老大早已心中有数,就不再看了)
1.曾经购买过跟XX产品相似产品的用户,且当前使用机型是XX产品上一或几代产品,有换机意愿需求的。
2.用户的关注程度用户是否浏览了新品产品站,是否搜索过新品相关的信息,是否参加了新品的活动。
3.用户的消费能力历史消费金额、历史购机数量、本年度购机金额、本年度购机数量、最近一次购机时间及金额等。
第三步准备数据:
创建分析表,搜集数据 这一步基本是最花时间的,这时候就是考量你的数据平台、数据仓库的时候了,仓库集成的好,平台易用的话时间应该不用太长。
第四步数据分析:笔者是把数据导入到finebi进行分析的,也可以用python,其实用excel也非常好,只是笔者对excel的有些处理不是很擅长。
第五步就是图表呈现,报告的表达了,最后我们验证得到的一个结论就是:购买过同类产品,关注度越高,复购周期越近的用户越最容易再次复购。
注:想要获取33个好用数据分析工具,可以私聊回复我“工具”获得!
‘叁’ 数据分析师日常都分析哪些数据
数据分析有:分类分析,矩阵分析,漏斗分析,相关分析,逻辑树分析,趋势分析,行为轨迹分析,等等。 我用HR的工作来举例,说明上面这些分析要怎么做,才能得出洞见。
01) 分类分析
比如分成不同部门、不同岗位层级、不同年龄段,来分析人才流失率。比如发现某个部门流失率特别高,那么就可以去分析。
02) 矩阵分析
比如公司有价值观和能力的考核,那么可以把考核结果做出矩阵图,能力强价值匹配的员工、能力强价值不匹配的员工、能力弱价值匹配的员工、能力弱价值不匹配的员工各占多少比例,从而发现公司的人才健康度。
03) 漏斗分析
比如记录招聘数据,投递简历、通过初筛、通过一面、通过二面、通过终面、接下Offer、成功入职、通过试用期,这就是一个完整的招聘漏斗,从数据中,可以看到哪个环节还可以优化。
04) 相关分析
比如公司各个分店的人才流失率差异较大,那么可以把各个分店的员工流失率,跟分店的一些特性(地理位置、薪酬水平、福利水平、员工年龄、管理人员年龄等)要素进行相关性分析,找到最能够挽留员工的关键因素。
05) 逻辑树分析
比如近期发现员工的满意度有所降低,那么就进行拆解,满意度跟薪酬、福利、职业发展、工作氛围有关,然后薪酬分为基本薪资和奖金,这样层层拆解,找出满意度各个影响因素里面的变化因素,从而得出洞见。
06) 趋势分析
比如人才流失率过去12个月的变化趋势。
07)行为轨迹分析
比如跟踪一个销售人员的行为轨迹,从入职、到开始产生业绩、到业绩快速增长、到疲惫期、到逐渐稳定。
‘肆’ 数据分析需要掌握哪些知识呢
数据分析所需要掌握的知识:
数学知识
对于初级数据分析师来说,则需要了解统计相关的基础性内容,公式计算,统计模型等。当你获得一份数据集时,需要先进行了解数据集的质量,进行描述统计。
而对于高级数据分析师,必须具备统计模型的能力,线性代数也要有一定的了解。
分析工具
对于分析工具,SQL 是必须会的,还有要熟悉Excel数据透视表和公式的使用,另外,还要学会一个统计分析工具,SAS作为入门是比较好的,VBA 基本必备,SPSS/SAS/R 至少要熟练使用其中之一,其他分析工具(如 Matlab)可以视情况而定。
编程语言
数据分析领域最热门的两大语言是 R 和 Python。涉及各类统计函数和工具的调用,R无疑有优势。但是大数据量的处理力不足,学习曲线比较陡峭。Python 适用性强,可以将分析的过程脚本化。所以,如果你想在这一领域有所发展,学习 Python 也是相当有必要的。
当然其他编程语言也是需要掌握的。要有独立把数据化为己用的能力, 这其中SQL 是最基本的,你必须会用 SQL 查询数据、会快速写程序分析数据。当然,编程技术不需要达到软件工程师的水平。要想更深入的分析问题你可能还会用到:Exploratory analysis skills、Optimization、Simulation、Machine Learning、Data Mining、Modeling 等。
业务理解
对业务的理解是数据分析师工作的基础,数据的获取方案、指标的选取、还有最终结论的洞察,都依赖于数据分析师对业务本身的理解。
对于初级数据分析师,主要工作是提取数据和做一些简单图表,以及少量的洞察结论,拥有对业务的基本了解就可以。对于高级数据分析师,需要对业务有较为深入的了解,能够基于数据,提炼出有效观点,对实际业务能有所帮助。对于数据挖掘工程师,对业务有基本了解就可以,重点还是需要放在发挥自己的技术能力上。
逻辑思维
对于初级数据分析师,逻辑思维主要体现在数据分析过程中每一步都有目的性,知道自己需要用什么样的手段,达到什么样的目标。对于高级数据分析师,逻辑思维主要体现在搭建完整有效的分析框架,了解分析对象之间的关联关系,清楚每一个指标变化的前因后果,会给业务带来的影响。对于数据挖掘工程师,罗辑思维除了体现在和业务相关的分析工作上,还包括算法逻辑,程序逻辑等,所以对逻辑思维的要求也是最高的。
数据可视化
数据可视化主要借助于图形化手段,清晰有效地传达与沟通信息。听起来很高大上,其实包括的范围很广,做个 PPT 里边放上数据图表也可以算是数据可视化。
对于初级数据分析师,能用 Excel 和 PPT 做出基本的图表和报告,能清楚地展示数据,就达到目标了。对于稍高级的数据分析师,需要使用更有效的数据分析工具,根据实际需求做出或简单或复杂,但适合受众观看的数据可视化内容。
协调沟通
数据分析师不仅需要具备破译数据的能力,也经常被要求向项目经理和部门主管提供有关某些数据点的建议,所以,你需要有较强的交流能力。
对于高级数据分析师,需要开始独立带项目,或者和产品做一些合作,因此除了沟通能力以外,还需要一些项目协调能力。
‘伍’ 学习大数据分析要用到哪些知识
每一个大数据的爱好者应该心目中都有一个数据分析师的梦吧,我们都知道数据分析师是一个非常神秘的职位,看着一堆数据就能洞悉全局,很神奇吧,今天来给大家送福利了,想提高你的数据分析能力吗,看下文吧。
1.Excel是否精钻?
除了常用的Excel函数(sum、average、if、countifs、sumifs、offset、match、index等)之外,Excel图表(饼图、线图、柱形图、雷达图等)和简单分析技能也是经常用的,可以帮助你快速分析业务走势和异常情况;另外,Excel里面的函数结合透视表以及VBA功能是完善报表开发的利器,让你一键轻松搞定报表。
2.你需要更懂数据库
常用的数据库如MySQL,Sql Server、Oracle、DB2、MongoDB等;除去SQL语句的熟练使用,对于数据库的存储读取过程也要熟练掌握。在对于大数据量处理时,如何想办法加快程序的运行速度、减少网络流量、提高数据库的安全性是非常有必要的。
3.掌握数据整理、可视化和报表制作
数据整理,是将原始数据转换成方便实用的格式,实用工具有Excel、R、Python等工具。数据可视化,是创建和研究数据的视觉表现,方便业务方快速分析数据并定位具体问题,实用工具有Tableau、FineBI、Qlikview.
如果常用excel,那需要用PPT展示,这项技能也需要琢磨透。如果用tableau、FineBI之类的工具做数据可视化,FineBI有推送查看功能,也就是在企业上下建立一套系统,通过权限的分配让不同的人看到权限范围内的报表。
4.多学几项技能
大多数据分析师都是从计算机、数学、统计这些专业而来的,也就意味着数学知识是重要基础。尤其是统计学,更是数据分析师的基本功,从数据采集、抽样到具体分析时的验证探索和预测都要用到统计学。
现在社会心理学也逐渐囊括到数据分析师的能力体系中来了,尤其是从事互联网产品运营的同学,需要了解用户的行为动向,分析背后的动机。把握了整体方向后,数据分析的过程也就更容易。