数据分析师需要学习python吗 (python与excel数据分析)

数据分析师的典型工作内容与工作流程

数据分析师的主要内容就是利用一定的工具,结合具体的业务对数据进行处理分析,帮助业务部门监控,定位,寻因,解决问题,从而帮助企业高效决策,提高经营效率。可以看出作为一个数据分析师不仅仅要掌握数据分析的工具,还要对所要分析的问题具有一定的认知,并且还要具有一定的分析思路。

下图是一个数据分析师的典型工作流程,共分为三个环节:第一环节,数据需求的沟通;第二环节,数据分析建模;第三环节,结论落地应用。前两个环节是每一个数据分析师都必不可少的,而第三个环节是根据每个公司对数据分析师的定位不同而决定的。而我们今天要介绍的pandas主要是在数据预处理与数据分析建模的环节中应用。

数据分析师要学python到什么程度,如何学python数据分析师

数据分析师的典型工作流程

你眼中的数据分析师的桌面

数据分析师要学python到什么程度,如何学python数据分析师

你眼中的分析师桌面

现实中的数据分析师的桌面

数据分析师要学python到什么程度,如何学python数据分析师

现实中分析师的桌面

数据为什么要学python,python的优势在哪?

随着python的热度的增加,现在越来越多的数据分析师开始学习与使用python,我么也不能只凭热度而选择一个工具,而是要分析一下对分析师来讲,python有哪些优势:

1、python的应用面更广,使用更加灵活,它能够关联数据分析中数据流转的上中下游,上游:数据获取,python可以很好的兼容爬虫,已经连接底层数据库的接口;中游:数据的分析,在这个过程中,python已经具有非常全面覆盖数据清洗,分析,建模等方面的库,下游:数据的展示与输出,在python中有许多库,能够实现各种个性化需求的展示图表。

2、在处理大量的数据时,python比excel更加高效与可靠,可以轻松实现大量数据的复杂计算。

3、python相比于excel,可以轻松实现自动化,对于许多个性化的需求,python比excel更容易实现自动化,并且自动化的程度更高。

数据分析师掌握python到什么程度,以及python向后的拓展可能有哪些?

1、对于一个初级分析师,对于python的掌握程度可以要求到,能够像excel处理数据似的使用python,需要熟练的掌握pandas,numpy库,基本掌握matplotplt库即可

2由于python的高拓展性,对于未来的发展方向,可以向算法,爬虫,可视化等方向发展,并且这些方向都是当前非常火的方向。

作为一个数据分析师如何零基础入门Python呢?

在此给大家一个两步走的过程:

第一步:基础打牢,python的基本知识肯定是必不可少的,这个基础知识可以通过廖雪峰教程,以及python菜鸟教程等学习,并且python的基础教程并不很难,对于编程的要求并不是很高。

第二步:定向训练,对于分析师最熟悉的工具当然是excel了,这一阶段的定向训练就可以对标excel,使用python的pandas库来实现excel常用的全部功能。下边的内容也是针对pandas如何实现excel的各种基本功能来展开的。

今天主要的内容是:像使用excel一样去使用Python

1、文件打开与保存

  • 打开excel文件
data=pd.read_excel(r'E:\huawei\我的作品\头条号文章\pandas操作\案例数据.xlsx',sheetname='sheet1') #sheetname可省略,默认读取第一个
data_=data

原始数据见下图

数据分析师要学python到什么程度,如何学python数据分析师

原始数据

  • 保存文件
data_to_excel(r'E:\huawei\我的作品\头条号文章\pandas操作\案例数据1.xlsx') 
  • 多sheet保存
writer=pd.ExcelWriter(r'E:\huawei\我的作品\头条号文章\pandas操作\案例数据2.xlsx')
data.to_excel(writer,'sheet_1',index=False)
data.to_excel(writer,'sheet_2',index=False)
writer.save() #一定不要忘记save(),否则无法保存。。

2、筛选是excel中常用的最基本的功能,我们来看一下pandas是如何实现的

  • 对行进行筛选,例:筛选8-10万的SUV
data_1=data[(data['车型定位']=='SUV')&(data['指导价(万)']>8)&(data['指导价(万)']<=10)] 

上面的查询逻辑其实非常的简单,需要注意的是,如果是多个条件的查询,必须在&(且)或者|(或)的两端条件用括号括起来。

  • 对列进行筛选,例:只要sku与销量两列:
data_2=data[['SKU','本月销量']] 

3、vlookup是大家在excel中用的最多的公式之一,当在两个表都非常大的情况下vlookup的速度是非常慢的,经常会出现死机的现象,反而用pandas中的‘vlookup’十分的快速与可靠,本人亲测,两个百万行的的表格查询,简直就是‘瞬秒’

data_4=pd.merge(data,data_2,how='left',left_on='SKU',right_on='SKU') 

如下图,merge之后的效果,把data_3中‘本月销量’V进来了

数据分析师要学python到什么程度,如何学python数据分析师

pandas-merge实现excel中的vlookup

4、透视也是大家最常用的excel技能了,下面就介绍利用pandas里的pivot_table函数如何透视,例:以车型定位对本月销量求和透视

data_5=pd.pivot_table(data,index='车型定位',values='本月销量',aggfunc='sum') 

数据分析师要学python到什么程度,如何学python数据分析师

pivot_table透视效果

5、统计分析

  • pandas中提供了describe()函数,能够一次性返回多个统计值,如下图:
data_6=data.describe() 
  • 如果想计算单独的统计值,可通过相对应的函数进行计算
ddta.count() #非空元素计算
data.min() #最小值
data.max() #最大值
data.idxmin() #最小值的位置
data.idxmax() #最大值的位置

数据分析师要学python到什么程度,如何学python数据分析师

describe结果

6、排序与排名,例:对本月销量进行降序操作,对本月销量输出降序排名,排序排名效果见下图:

data_.sort_values(by='本月销量',ascending=False,inplace=True)
data_['本月销量排名']=data['本月销量'].rank(ascending=False,method='min')

数据分析师要学python到什么程度,如何学python数据分析师

排序与排名结果

7、合并多个文件,将两个相同结构的表格进行连接将data与data_1进行合并,合并后结果见下图:

data_7=pd.concat([data,data_1]) #一定注意表格里的变量时list格式 

数据分析师要学python到什么程度,如何学python数据分析师

多文件合并

8、修改文件中满足特定条件的值,例:data数据中的名爵ZS的车型定位错了,需要由SUV修改成轿车,修改如下:

data.ix[data['车系']=='名爵ZS','车型定位']='轿车' 

数据分析师要学python到什么程度,如何学python数据分析师

修改特定值

9、map方法在pandas里的应用,新增一列数据,将本月销量高于5000的打上‘高销量’标签,少于5000的为‘低销量’

data['高/低销量']=data['本月销量'].map(lambda x: '高销量' if x>=5000 else '低销量') 

数据分析师要学python到什么程度,如何学python数据分析师

map方法应用

以上只是一些pandas的入门应用,大家在平时应用时,遇到不懂的点多百度,也可以关注我,有问题可以随时私信,只要坚持下来,总会有惊人的收获的

-------------------------------------------------------------

不忘初心,方得始终

最后,以下是全部源码汇总

import pandas as pd
data=pd.read_excel(r'E:\huawei\我的作品\头条号文章\pandas操作\案例数据.xlsx')
data_=data
data_1=data[(data['车型定位']=='SUV')&(data['指导价(万)']>8)&(data['指导价(万)']<=10)]
data_2=data[['SKU','本月销量']]
data_4=pd.merge(data,data_2,how='left',left_on='SKU',right_on='SKU')
data_5=pd.pivot_table(data,index='车型定位',values='本月销量',aggfunc='sum')
data_6=data.describe()
data_.sort_values(by='本月销量',ascending=False,inplace=True)
data_['本月销量排名']=data['本月销量'].rank(ascending=False,method='min')
data_7=pd.concat([data,data_1])
data.ix[data['车系']=='名爵ZS','车型定位']='轿车'
data['高/低销量']=data['本月销量'].map(lambda x: '高销量' if x>=5000 else '低销量')