Python学完之后可以直接从事数据分析的工作吗?

2020-03-27 10:34发布

4条回答
我行其野
2楼 · 2020-03-27 17:13

可以的。专业的数据分析运用的就是Python语言

大泽九章
3楼 · 2020-10-23 11:35







文章目录

一、入门数据分析1.大数据时代的基本面2.数据分析师职业前景3.成为数据分析师之路

二、Python的安装与环境配置1.Python版本2.不同系统安装Python3.环境变量配置4.安装pip5.集成开发环境选择

三、Anaconda的介绍与安装1.Anaconda是什么2.下载和安装Anaconda3.conda工具的介绍和包管理

四、JupyterNotebook1.JupyterNotebook基本介绍2.JupyterNotebook的使用3.Jupyter中使用Python4.数据交互案例加载csv数据,处理数据,保存到MongoDB数据库使用Jupyter处理商铺数据





一、入门数据分析

  1. 大数据时代的基本面

  2. 大数据产业发展现状:现在数据已经呈现出了爆炸式的增长,每一分钟可能就会有:

  3. 13000+个iPhone应用下载Twitter上发布98000+新微博发出1.68亿+条Email淘宝双十一10680+个新订单12306出票1840+张

  4. 在大数据时代,出现了三大变革:

  5. 从随机样本到全量数据从精确性到混杂性从因果关系到相关关系

  6. 举一个典型的例子:男士到超市买尿布会顺带买一些啤酒,通过大数据分析出的结果促使超市在尿布的货架附近放一些啤酒,从而增大销量,买尿布与买啤酒之间没有因果关系,但是存在着某种相关关系。

  7. 国内大数据应用状况如下(来自CSDN):

  8. 可以看到,大数据的应用已经具有一定规模,但是还有很大的发展空间。

  9. 人才方面的需求主要包括:

  10. 数据分析师

  11. 统计分析预测分析流程优化大数据工程师

  12. 平台开发应用开发技术支撑数据架构师

  13. 业务理解应用部署架构设计

  14. 之所以要学习数据分析,是因为数据正变得越来越常见和廉价,分析可以为数据提供稀缺且附带额外价值的服务。

  15. 2.数据分析师职业前景

  16. 数据分析师需要解决的问题:

  17. 预估需求、分配产能在大数据时代,更需要解读数据的能力。Q:烤箱的产能有限,该选择生产哪些种类的面包?A:列出最受欢迎的几种面包,优先生产明星商品。关键是找出明星商品,这需要统计出面包的总营业额,再算出每种面包占总营业额的相对比例,优先生产能囊括七成营业额的产品组合。这会用到统计的次数分配表和直方图,此种分析法也称为ABC分析法,如下:评估行销方案成效统计并不是分析数据就好了,从分析的结果推测该如何影响顾客的行为,并且将之拟定为具体的商业计划,并据此行动才是关键。Q:想在网上销售面包,哪一种广告比较有效?A:写出两种文案,分别广告一段时间看看成效如何。要比较广告成效,最好的方法是用统计的随机对照实验,让两种广告随机出现,一段时间后,观察哪种广告的效果比较好,再大范围运用效果比较好的广告。产品品管发现结果以及形成结果的原因之间的关系非常重要。Q:怎么从面包判断面包师傅有没有偷工减料?A:抽查几个面包,秤秤看重量差距有没有过大。你需要先知道面包的平均重量,再对面包进行抽样,看看面包的重量是否呈现常态分布的钟形曲线?若是偏离曲线,就可能暗示面包品管有问题。如下:

  18. 一名好的数据分析师是一个好的产品规划者和行业的领跑者;在IT企业,优秀的数据分析师很有希望成为公司的高层。

  19. 数据分析师的工作流程如下:

  20. 数据分析师的三大任务:

  21. 分析历史预测未来优化选择

  22. 数据分析师要求的8项技能:

  23. 统计学

  24. 统计检验、P值、分布、估计基本工具

  25. PythonSQL多变量微积分和线性代数数据整理数据可视化软件工程机器学习数据科学家的思维

  26. 数据驱动问题解决

  27. 数据分析师要求的三大能力:

  28. 统计学基础和分析工具应用计算机编码能力特定应用领域或行业的知识

  29. 典型的数据分析师的成长历程:

  30. 3.成为数据分析师之路

  31. 成为数据分析师的自我修养:

  32. 敏感探究细致务实

  33. 数据分析师需要具备的技能如下:

  34. 熟悉Excel数据处理数据敏感度较强熟悉公司业务和行业知识掌握数据分析方法

  35. 基本分析方法

  36. 对比分析法分组分析法交叉分析法结构分析法漏斗图分析法综合评价分析法因素分析法矩阵关联分析高级分析方法

  37. 相关分析法回归分析法聚类分析法判别分析法主成分分析法因子分析法对应分析法时间序列

  38. 在不同行业数据分析从业人员的工作内容和职责:

  39. 从事数据分析的工作

  40. 学做日报日销、库存类的表产品销售预测库存计算和预警流量分析相关表复盘数据分析挖掘工作人员

  41. 给产品优化提供数据支持验证产品改进效果为高层提供邮件和报表互联网+分析

  42. KPI指标监控各种周期性报表针对某一业务问题做分析报告针对业务进行线下建模和分析

  43. 数据分析很重要的学科基础是数学,但是数学不好也没有关系,可以用Python来帮助学习:Python不仅是一门编程语言,而且是数据挖掘机器学习等技术的基础,方便建立自动化的工作流;Python入门不难,它对数学要求并不是太高,重要的是需要知道如何用语言表达一个算法逻辑;Python有很多封装好的工具库和命令,需要做的是用哪些数学方法解决一个问题,并构建出来。

  44. 要想快速入门Python数据分析,就要使用好Python相关的工具包:(1)Python最大的特点是拥有一个巨大而活跃的科学计算社区,采用python进行科学计算的趋势也越来越明显。(2)由于Python有不断改良的库,使其成为数据处理任务的一大代替方案,结合其在通用编程方面的强大实力,完全可以只是用Python这一种语言去构建以数据为中心的应用程序,其中:

  45. 常用数据分析库

  46. NumpyScipyPandasmatplotlib常用高级数据分析库

  47. nltkigraphscikit-learn

  48. (3)作为一个科学计算平台,Python的能够轻松集成C、C++以及Fortran代码。

  49. 数据分析的准备工作:

  50. 了解数据数据清洗与初步分析绘图与可视化数据聚合与分组处理数据挖掘

  51. 数据分析与数据挖掘的常用算法:

  52. 线性回归时间序列分析分类算法聚类算法降维算法

  53. 学习和从事数据分析工作的方法为:

  54. 勤思考多动手多总结

  55. 二、Python的安装与环境配置

  56. 1.Python版本

  57. Python分为3.X和2.X两个大版本。Python的3.0版本,常被称为Python3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python3.X在设计的时候没有考虑向下相容,许多针对早期Python版本设计的程式都无法在Python3.X上正常执行。大多数第三方库都正在努力地相容Python3.X版本。

  58. 2.不同系统安装Python

  59. (1)Unix&Linux系统

  60. 访问http://www.python.org/download/选择适用于Unix/Linux的源码压缩包下载及解压压缩包如果你需要自定义一些选项,修改Modules/Setup执行./configure脚本makemakeinstall

  61. (2)Window系统

  62. 访问http://www.python.org/download/在下载列表中选择Window平台安装包由于官网下载很缓慢,因此我已经将Python各版本的安装包下载整理好了,可以直接点击加QQ群963624318在群文件夹Python相关安装包中下载即可。下载后,双击下载包,进入Python安装向导,安装非常简单,只需要使用默认的设置一直点击下一步直到安装完成即可。

  63. (3)Mac系统自带python2.7,可以执行brewinstallpython安装新版本。

  64. 3.环境变量配置

  65. Windows系统需要配置环境变量。

  66. 如果在安装Python时没有选择添加环境变量,则需要手动添加,需要将安装Python的路径XXX\PythonXXX和XXX\PythonXXX\Scripts添加到环境变量,有两种方式:

  67. 命令行添加CMD中分别执行path=%path%;XXX\PythonXXX和path=%path%;XXX\PythonXXX\Scripts即可。在系统设置中添加右键计算机→属性→高级系统设置→系统属性→环境变量→双击path→添加XXX\PythonXXX和XXX\PythonXXX\Scripts安装路径,如下:

  68. 最后依次点击确认退出即可。

  69. 4.安装pip

  70. pip是Python中的包安装和管理工具,在安装Python时可以选择安装pip,在Python2>=2.7.9或Python3>=3.4中自带。

  71. 如果没有安装pip,可以通过命令安装:

  72. Linux或者Macpipinstall-UpipWindows(cmd输入)python-mpipinstall-Upip

  73. 5.集成开发环境选择

  74. Python有很多编辑器,包括PyCharm等,这里选择PyCharm:PyCharm是由JetBrains打造的一款PythonIDE,支MacOS、Windows、Linux系统。包含调试、语法高亮、Project管理、代码跳转、智能提示、自动完成、单元测试、版本控制等功能。

  75. 可以在https://www.jetbrains.com/pycharm/download/选择合适的版本进行下载安装即可。

  76. 三、Anaconda的介绍与安装

  77. 1.Anaconda是什么

  78. Anaconda是一个可用于科学计算的Python发行版,支持Linux、Mac、Windows系统,内置了常用的科学计算库。它解决了官方Python的两大痛点:(1)提供了包管理功能,Windows平台安装第三方包经常失败的场景得以解决;(2)提供环境管理的功能,功能类似virtualenv,解决了多版本Python并存、切换的问题。

  79. 2.下载和安装Anaconda

  80. 直接在官网https://www.anaconda.com/products/individual下载安装包,选择下载Python3.8的安装包个人版即可,但是官网下载速度较慢,因此我已经将Python3.8对应的Anaconda安装包下载整理好了,可以直接点击加QQ群963624318在群文件夹Python相关安装包中下载即可。

  81. 下载完成后直接安装,需要注意,在点击过程中会出现添加环境变量的提示,需要勾选,如下:

  82. 最后依次点击下一步、安装完成后,点击Win键(Windows系统下)可以看到最近添加或应用列表A下如图:

  83. 此时可点击AnacondaNavigator,如下所示:

  84. 可以看到环境为Python3.8.3,Anaconda创建的基础环境名为base,也是默认环境,也可以看到默认安装的库。

  85. 再打开Anaconda命令行工具AnacondaPowershellPrompt,输入python-V,也打印Python3.8.3。

  86. 还可以通过命令创建新的conda环境,如condacreate--namepy27python=2.7执行后即创建了一个名为py27的Python版本为2.7的conda环境。

  87. 激活环境执行命令condaactivatepy27,停用使用命令condadeactivate。

  88. 可以在命令行中执行condalist查看已经安装的库,如下:

  89. #packagesinenvironmentatE:\Anaconda3:

  90. #

  91. #NameVersionBuildChannel

  92. _ipyw_jlab_nb_ext_conf0.1.0py38_0

  93. alabaster0.7.12py_0

  94. anaconda2020.07py38_0

  95. anaconda-client1.7.2py38_0

  96. anaconda-navigator1.9.12py38_0

  97. ...

  98. zlib1.2.11h62dcd97_4

  99. zope1.0py38_1

  100. zope.event4.4py38_0

  101. zope.interface4.7.1py38he774522_0

  102. zstd1.4.5ha9fde0e_0

3.conda工具的介绍和包管理

conda是Anaconda下用于包管理和环境管理的工具,功能上类似pip和virtualenv的组合,conda的环境管理与virtualenv是基本上是类似的操作。安装成功后conda会默认加入到环境变量中,因此可直接在命令行窗口运行conda命令。

常见的conda命令和含义如下:

命令含义conda命令conda–h查看帮助基于python3.6版本创建名为python36的环境condacreate--namepython36python=3.6激活此环境activatepython36(Windows)、sourceactivatepython36(linux/mac)查看python版本python-V退出当前环境deactivatepython36删除环境condaremove-npy27--all查看所有安装的环境condainfo-e

conda的包管理常见命令如下:

包管理命令意义包管理命令安装matplotlibcondainstallmatplotlib查看已安装的包condalist包更新condaupdatematplotlib删除包condaremovematplotlib

在conda中,anythingisapackage一切皆是包,conda本身可以看作是一个包,python环境可以看作是一个包,anaconda也可以看作是一个包,因此除了普通的第三方包支持更新之外,这3个包也支持如下命令:

操作命令更新conda本身condaupdateconda更新anaconda应用condaupdateanaconda更新python,假设当前python环境是3.8.1,而最新版本是3.8.2,那么就会升级到3.8.2condaupdatepython

四、JupyterNotebook

  1. JupyterNotebook基本介绍

  2. JupyterNotebook(此前被称为IPythonnotebook)是一个交互式笔记本,支持运行40多种编程语言。

  3. 在开始使用notebook之前,需要先安装该库:(1)在命令行中执行pipinstalljupyter来安装;(2)安装Anaconda后自带JupyterNotebook。

  4. 在命令行中执行jupyternotebook,就会在当前目录下启动Jupyter服务并使用默认浏览器打开页面,还可以复制链接到其他浏览器中打开,如下:

  5. 可以看到,notebook界面由以下部分组成:(1)notebook名称;(2)主工具栏,提供了保存、导出、重载notebook,以及重启内核等选项;(3)notebook主要区域,包含了notebook的内容编辑区。

  6. 2.JupyterNotebook的使用

  7. 在Jupyter页面下方的主要区域,由被称为单元格的部分组成。每个notebook由多个单元格构成,而每个单元格又可以有不同的用途。上图中看到的是一个代码单元格(codecell),以[]开头,在这种类型的单元格中,可以输入任意代码并执行。例如,输入1+2并按下Shift+Enter,单元格中的代码就会被计算,光标也会被移动到一个新的单元格中。

  8. 如果想新建一个notebook,只需要点击New,选择希望启动的notebook类型即可。

  9. 简单使用示意如下:

  10. 可以看到,notebook可以修改之前的单元格,对其重新计算,这样就可以更新整个文档了。如果你不想重新运行整个脚本,只想用不同的参数测试某个程式的话,这个特性显得尤其强大。不过,也可以重新计算整个notebook,只要点击Cell->Runall即可。

  11. 再测试标题和其他代码如下:

  12. 可以看到,在顶部添加了一个notebook的标题,还可以执行for循环等语句。

  13. 3.Jupyter中使用Python

  14. Jupyter测试Python变量和数据类型如下:

  15. 测试Python函数如下:

  16. 测试Python模块如下:

  17. 可以看到,在执行出错时,也会抛出异常。

  18. 测试数据读写如下:

  19. 数据读写很重要,因为进行数据分析时必须先读取数据,进行数据处理后也要进行保存。

  20. 4.数据交互案例

  21. 加载csv数据,处理数据,保存到MongoDB数据库

  22. 有csv文件shopproducts.csv和userratings.csv,分别是商品数据和用户评分数据,如下:

如需获取数据、代码等相关文件进行测试学习,可以直接点击加QQ群963624318在群文件夹Python数据分析实战中下载即可。


现在需要通过Python将其读取出来,并将指定的字段保存到MongoDB中,需要在Anaconda中执行命令condainstallpymongo安装pymongo。

Python代码如下:

importpymongo



classProduct:

def__init__(self,productId:int,name,imageUrl,categories,tags):

self.productId=productId

self.name=name

self.imageUrl=imageUrl

self.categories=categories

self.tags=tags


def__str__(self)->str:

returnself.productId+'^'+self.name+'^'+self.imageUrl+'^'+self.categories+'^'+self.tags



classRating:

def__init__(self,userId:int,productId:int,score:float,timestamp:int):

self.userId=userId

self.productId=productId

self.score=score

self.timestamp=timestamp


def__str__(self)->str:

returnself.userId+'^'+self.productId+'^'+self.score+'^'+self.timestamp



if__name__=='__main__':

myclient=pymongo.MongoClient("mongodb://127.0.0.1:27017/")

mydb=myclient["goods-users"]

#valattr=item.split("\\^")

#//转换成Product

#Product(attr(0).toInt,attr(1).trim,attr(4).trim,attr(5).trim,attr(6).trim)


shopproducts=mydb['shopproducts']

withopen('shopproducts.csv','r',encoding='UTF-8')asf:

item=f.readline()

whileitem:

attr=item.split('^')

product=Product(int(attr[0]),attr[1].strip(),attr[4].strip(),attr[5].strip(),attr[6].strip())

shopproducts.insert_one(product.__dict__)

#print(product)

#print(json.dumps(obj=product.__dict__,ensure_ascii=False))

item=f.readline()


#valattr=item.split(",")

#Rating(attr(0).toInt,attr(1).toInt,attr(2).toDouble,attr(3).toInt)

userratings=mydb['userratings']

withopen('userratings.csv','r',encoding='UTF-8')asf:

item=f.readline()

whileitem:

attr=item.split(',')

rating=Rating(int(attr[0]),int(attr[1].strip()),float(attr[2].strip()),int(attr[3].strip()))

userratings.insert_one(rating.__dict__)

#print(rating)

item=f.readline()



在启动MongoDB服务后,运行Python代码,运行完成后,再通过Robo3T查看数据库如下:

显然,保存数据成功。

使用Jupyter处理商铺数据

待处理的数据是商铺数据,如下:

包括名称、评论数、价格、地址、评分列表等,其中评论数、价格和评分均不规则、需要进行数据清洗。


如需获取数据、代码等相关文件进行测试学习,可以直接点击加QQ群963624318在群文件夹Python数据分析实战中下载即可。


Jupyter中处理如下:

可以看到,最后得到了经过清洗后的规则数据。

完整Python代码如下:

#数据读取

f=open('商铺数据.csv','r',encoding='utf8')

foriinf.readlines()[1:15]:

print(i.split(','))



#创建comment、price、commentlist清洗函数

deffcomment(s):

'''comment清洗函数:用空格分段,选取结果list的第一个为点评数,并且转化为整型'''

if'条'ins:

returnint(s.split('')[0])

else:

return'缺失数据'



deffprice(s):

'''price清洗函数:用¥分段,选取结果list的最后一个为人均价格,并且转化为浮点型'''

if'¥'ins:

returnfloat(s.split('¥')[-1])

else:

return'缺失数据'



deffcommentl(s):

'''commentlist清洗函数:用空格分段,分别清洗出质量、环境及服务数据,并转化为浮点型'''

if''ins:

quality=float(s.split('')[0][2:])

environment=float(s.split('')[1][2:])

service=float(s.split('')[2][2:-1])

return[quality,environment,service]

else:

return'缺失数据'



#数据处理清洗

datalist=[]#创建空列表


f.seek(0)

n=0#创建计数变量

foriinf.readlines():

data=i.split(',')

#print(data)

classify=data[0]#提取分类

name=data[1]#提取店铺名称

comment_count=fcomment(data[2])#提取评论数量

star=data[3]#提取星级

price=fprice(data[4])#提取人均

address=data[5]#提取地址

quality=fcommentl(data[6])[0]#提取质量评分

env=fcommentl(data[6])[1]#提取环境评分

service=fcommentl(data[6])[2]#提取服务评分

if'缺失数据'notin[comment_count,price,quality]:#用于判断是否有数据缺失

n+=1

data_re=[['classify',classify],

['name',name],

['comment_count',comment_count],

['star',star],

['price',price],

['address',address],

['quality',quality],

['environment',env],

['service',service]]

datalist.append(dict(data_re))#字典生成,并存入列表datalist

print('成功加载%i条数据'%n)

else:

continue


print(datalist)

print('总共加载%i条数据'%n)


f.close()



撸串儿去不
4楼 · 2020-10-27 16:44

嗯嗯,是基于Python语言的

IT学习助手 - qq:2676427015
5楼 · 2021-08-11 10:27

首先因为Python可以轻松地集成C、C++、Fortran代码,一些底层用C写的算法封装在python包里后性能非常高效。并且Python与Ruby都有大量的daoWeb框架,因此用于网站的建设,另一方面个人觉得因为Python作为解释性语言相对编译型语言更为简单,可以通过简单的脚本处理大量的数据。而组织内部统一使用的语言将大大提高工作效率。

Python是一种面向对象、直译式计算机程序设计语言,由Guido van Rossum于1989年底发明。由于他简单、易学、免费开源、可移植性、可扩展性等特点,Python又被称之为胶水语言。下图为主要程序语言近年来的流行趋势,Python受欢迎程度扶摇直上。

由于Python拥有非常丰富的库,使其在数据分析领域也有广泛的应用。


相关问题推荐

  • 回答 3

    换行。比如,print hello\nworld效果就是helloworld\n就是一个换行符。\是转义的意思,'\n'是换行,'\t'是tab,'\\'是,\ 是在编写程序中句子太长百,人为换行后加上\但print出来是一整行。...

  • 回答 42

    十种常见排序算法一般分为以下几种:(1)非线性时间比较类排序:a. 交换类排序(快速排序、冒泡排序)b. 插入类排序(简单插入排序、希尔排序)c. 选择类排序(简单选择排序、堆排序)d. 归并排序(二路归并排序、多路归并排序)(2)线性时间非比较类排序:...

  • 回答 70
    已采纳

    前景很好,中国正在产业升级,工业机器人和人工智能方面都会是强烈的热点,而且正好是在3~5年以后的时间。难度,肯定高,要求你有创新的思维能力,高数中的微积分、数列等等必须得非常好,软件编程(基础的应用最广泛的语言:C/C++)必须得很好,微电子(数字电...

  • 回答 28

    迭代器与生成器的区别:(1)生成器:生成器本质上就是一个函数,它记住了上一次返回时在函数体中的位置。对生成器函数的第二次(或第n次)调用,跳转到函数上一次挂起的位置。而且记录了程序执行的上下文。生成器不仅记住了它的数据状态,生成器还记住了程序...

  • 回答 9

    python中title( )属于python中字符串函数,返回’标题化‘的字符串,就是单词的开头为大写,其余为小写

  • 回答 6

    第一种解释:代码中的cnt是count的简称,一种电脑计算机内部的数学函数的名字,在Excel办公软件中计算参数列表中的数字项的个数;在数据库( sq| server或者access )中可以用来统计符合条件的数据条数。函数COUNT在计数时,将把数值型的数字计算进去;但是...

  • 回答 1

    head是方法,所以需要取小括号,即dataset.head()显示的则是前5行。data[:, :-1]和data[:, -1]。另外,如果想通过位置取数据,请使用iloc,即dataset.iloc[:, :-1]和dataset.iloc[:, -1],前者表示的是取所有行,但不包括最后一列的数据,结果是个DataFrame。...

  • Python入门简单吗2021-09-23 13:21
    回答 45

    挺简单的,其实课程内容没有我们想象的那么难、像我之前同学,完全零基础,培训了半年,直接出来就工作了,人家还在北京大公司上班,一个月15k,实力老厉害了

  • 回答 4

    Python针对众多的类型,提供了众多的内建函数来处理(内建是相对于导入import来说的,后面学习到包package时,将会介绍),这些内建函数功用在于其往往可对多种类型对象进行类似的操作,即多种类型对象的共有的操作;如果某种操作只对特殊的某一类对象可行,Pyt...

  • 回答 8

     相当于 ... 这里不是注释

  • 回答 4

    还有FIXME

  • 回答 3

    python的两个库:xlrd和xlutils。 xlrd打开excel,但是打开的excel并不能直接写入数据,需要用xlutils主要是复制一份出来,实现后续的写入功能。

  • 回答 8

    单行注释:Python中的单行注释一般是以#开头的,#右边的文字都会被当做解释说明的内容,不会被当做执行的程序。为了保证代码的可读性,一般会在#后面加一两个空格然后在编写解释内容。示例:#  单行注释print(hello world)注释可以放在代码上面也可以放在代...

  • 回答 2

    主要是按行读取,然后就是写出判断逻辑来勘测行是否为注视行,空行,编码行其他的:import linecachefile=open('3_2.txt','r')linecount=len(file.readlines())linecache.getline('3_2.txt',linecount)这样做的过程中发现一个问题,...

  • 回答 4

    或许是里面有没被注释的代码

  • 回答 26

    自学的话要看个人情况,可以先在B站找一下视频看一下

没有解决我的问题,去提问