前言

和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂。大部分网上的资料总是从Python语法教起,夹杂着大量Python开发的知识点,花了很多时间却始终云里雾里,不知道哪些知识才是真正有用的。本来以为上手就能写爬虫出图,却在看基础的过程中消耗了一周又一周,以至于很多励志学习Python的小伙伴牺牲在了入门的前一步。

(文末送读者福利)

于是,我总结了以下一篇干货,来帮助大家理清思路,提高学习效率。总共分为三大部分:做Python数据分析必知的语法,如何实现爬虫,怎么做数据分析。

(文末送读者福利)

1.必须知道的两组Python基础术语

A.变量和赋值

Python可以直接定义变量名字并进行赋值的,例如我们写出a = 4时,Python解释器干了两件事情:

在内存中创建了一个值为4的整型数据

在内存中创建了一个名为a的变量,并把它指向4

用一张示意图表示Python变量和赋值的重点:


例如下图代码,“=”的作用就是赋值,同时Python会自动识别数据类型:


B.数据类型

在初级的数据分析过程中,有三种数据类型是很常见的:

列表list(Python内置)

字典dic(Python内置)

DataFrame(工具包pandas下的数据类型,需要import pandas才能调用)

它们分别是这么写的:

列表(list):

#列表
liebiao=[1,2.223,-3,'刘强东','章泽天','周杰伦','昆凌',['微博','B站','抖音']]

list是一种有序的集合,里面的元素可以是之前提到的任何一种数据格式和数据类型(整型、浮点、列表……),并可以随时指定顺序添加其中的元素,其形式是:

#ist是一个可变的有序表,所以,可以往list中追加元素到末尾:
liebiao.append('瘦')
ptint(liebiao)
#结果1
>>>[1, 2.223, -3, '刘强东', '章泽天', '周杰伦', '昆凌', ['微博', 'B站', '抖音'], '瘦']#也可以把元素插入到指定的位置,比如索引号为5的位置,插入“胖”这个元素:
liebiao.insert(5, '胖')
ptint(liebiao)
#结果2
>>>[1, 2.223, -3, '刘强东', '章泽天', '胖', '周杰伦', '昆凌', ['微博', 'B站', '抖音'], '瘦']

字典(dict):

#字典
zidian={'刘强东':'46','章泽天':'36','周杰伦':'40','昆凌':'26'}

字典使用键-值(key-value)存储,无序,具有极快的查找速度。以上面的字典为例,想要快速知道周杰伦的年龄,就可以这么写:

zidian['周杰伦']
>>>'40'

dict内部存放的顺序和key放入的顺序是没有关系的,也就是说,"章泽天"并非是在"刘强东"的后面。

DataFrame:

DataFrame可以简单理解为excel里的表格格式。导入pandas包后,字典和列表都可以转化为DataFrame,以上面的字典为例,转化为DataFrame是这样的:

import pandas as pddf=pd.DataFrame.from_dict(zidian,orient='index',columns=['age'])#注意DataFrame的D和F是大写
df=df.reset_index().rename(columns={'index':'name'})#给姓名加上字段名


和excel一样,DataFrame的任何一列或任何一行都可以单独选出进行分析。

以上三种数据类型是python数据分析中用的最多的类型,基础语法到此结束,接下来就可以着手写一些函数计算数据了。

2.从Python爬虫学循环函数

掌握了以上基本语法概念,我们就足以开始学习一些有趣的函数。我们以爬虫中绕不开的遍历url为例,讲讲大家最难理解的循环函数for的用法:

A.for函数

for函数是一个常见的循环函数,先从简单代码理解for函数的用途:

zidian={'刘强东':'46','章泽天':'36','周杰伦':'40','昆凌':'26'}
for key in zidian:print(key)
>>>
刘强东
章泽天
周杰伦
昆凌

因为dict的存储不是按照list的方式顺序排列,所以,迭代出的结果顺序很可能不是每次都一样。默认情况下,dict迭代的是key。如果要迭代value,可以用for value in d.values(),如果要同时#迭代key和value,可以用for k, v in d.items()

可以看到,字典里的人名被一一打印出来了。for 函数的作用就是用于遍历数据。掌握for函数,可以说是真正入门了Python函数。

B.爬虫和循环

for函数在书写Python爬虫中经常被应用,因为爬虫经常需要遍历每一个网页,以获取信息,所以构建完整而正确的网页链接十分关键。以某票房数据网为例,他的网站信息长这样:



仔细观察,该网站不同日期的票房数据网址(url)只有后面的日期在变化,访问不同的网址(url)就可以看到不同日期下的票房数据:


我们要做的是,遍历每一个日期下的网址,用Python代码把数据爬下来。此时for函数就派上用场了,使用它我们可以快速生成多个符合条件的网址:


为了方便理解,我给大家画了一个for函数的遍历过程示意图:


此处省略掉后续爬取过程,相关爬虫代码见文末。我们使用爬虫爬取了5800+条数据,包含20个字段,时间囊括了从2008年1月开始至2019年2月十一年期间的单周票房、累计票房、观影人次、场均人次、场均票价、场次环比变化等信息。

3.Python怎么实现数据分析?

除了爬虫,分析数据也是Python的重要用途之一,Excel能做的事,Python究竟怎么实现呢;Excel不能做的事,Python又是否能实现呢?利用电影票房数据,我们分别举一个例子说明:

A.Python分析

在做好数据采集和导入后,选择字段进行初步分析可以说是数据分析的必经之路。在Dataframe数据格式的帮助下,这个步骤变得很简单。

比如当我们想看单周票房第一的排名分别都是哪些电影时,可以使用pandas工具库中常用的方法,筛选出周票房为第一名的所有数据,并保留相同电影中周票房最高的数据进行分析整理:

import pandas as pd
data = pd.read_csv('中国票房数据爬取测试20071-20192.csv',engine='python')
data[data['平均上座人数']>20]['电影名']
#计算周票房第一随时间变化的结果,导入数据,并选择平均上座人数在20以上的电影为有效数据dataTop1_week = data[data['排名']==1][['电影名','周票房']]
#取出周票房排名为第一名的所有数据,并保留“电影名”和“周票房”两列数据dataTop1_week = dataTop1_week.groupby('电影名').max()['周票房'].reset_index()
#用“电影名”来分组数据,相同电影连续霸榜的选择最大的周票房保留,其他数据删除dataTop1_week = dataTop1_week.sort_values(by='周票房',ascending=False)
#将数据按照“周票房”进行降序排序dataTop1_week.index = dataTop1_week['电影名']
del dataTop1_week['电影名']
#整理index列,使之变为电影名,并删掉原来的电影名列dataTop1_week
#查看数据


9行代码,我们完成了Excel里的透视表、拖动、排序等鼠标点击动作。最后再用Python中的可视化包matplotlib,快速出图:



B.函数化分析

以上是一个简单的统计分析过程。接下来就讲讲Excel基础功能不能做的事——自定义函数提效。观察数据可以发现,数据中记录了周票房和总票房的排名,那么刚刚计算了周票房排名的代码,还能不能复用做一张总票房分析呢?


当然可以,只要使用def函数和刚刚写好的代码建立自定义函数,并说明函数规则即可:

def pypic(pf):#定义一个pypic函数,变量是pfdataTop1_sum = data[['电影名',pf]]#取出源数据中,列名为“电影名”和pf两列数据dataTop1_sum = dataTop1_sum.groupby('电影名').max()[pf].reset_index()#用“电影名”来分组数据,相同电影连续霸榜的选择最大的pf票房保留,其他数据删除dataTop1_sum = dataTop1_sum.sort_values(by=pf,ascending=False)#将数据按照pf进行降序排序dataTop1_sum.index = dataTop1_sum['电影名']del dataTop1_sum['电影名']#整理index列,使之变为电影名,并删掉原来的电影名列dataTop1_sum[:20].iloc[::-1].plot.barh(figsize = (6,10),color = 'orange')name=pf+'top20分析'plt.title(name)#根据函数变量名出图

定义函数后,批量出图so easy:



学会函数的构建,一个数据分析师才算真正能够告别Excel的鼠标点击模式,迈入高效分析的领域。

4.光看不练是永远不能入门的

如果只有一小时学习,以上就是大家一定要掌握的Python知识点。光看不练永远都会是门外汉,如果你有兴趣学习Python数据分析,却在过程中感到困惑,不用迷茫,小编为大家带来了学习资料,让你快速入门Python数据分析:

读者福利:知道你对Python感兴趣,便准备了这套python学习资料

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面还可以找到适合自己的学习方案

包括:Python永久使用安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习等学习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

2组语法,1个函数,教你学会用Python做数据分析!相关推荐

  1. python新手入门教程思路-Python新手入门教程_教你怎么用Python做数据分析

    Python新手入门教程_教你怎么用Python做数据分析 跟大家讲了这么多期的Python教程,有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂.很多网上 ...

  2. 这十套练习,教你如何用Pandas做数据分析

    最新工作比较忙,python这块搁置了好久都没有好好学习以及更新相关学习笔记,立下flag,争取两天更新一个练习题,到十一月初更新完这块内容 练习1-开始了解你的数据(2021-11-02已完成) 练 ...

  3. python 网络安全数据分析_用Python做数据分析:Pandas常用数据查询语法

    撸主: 大毛 岂安科技业务风险分析师 多年订单业务反欺诈经验,负责岂安科技多款产品运营工作. 在使用Pandas之前,大多数数据分析师已经掌握了Excel和SQL,并且在刚上手Pandas时会经常习惯 ...

  4. append函数_连载|想用Python做自动化测试?函数的参数传递机制及变量作用域

    " 这一节有点难.看不懂没关系.继续往后学,回头再来看." 10.6 函数参数传递的机制 10.6.1 值传递与引用传递 编程语言的参数传递机制通常有两种: 值传递 拷贝参数的值, ...

  5. 一步一步教你如何用python做词云_一步一步教你如何用Python做词云

    前言 在大数据时代,你竟然会在网上看到的词云,例如这样的. 看到之后你是什么感觉?想不想自己做一个? 如果你的答案是正确的,那就不要拖延了,现在我们就开始,做一个词云分析图,Python是一个当下很流 ...

  6. 还在加班做数据吗?今天1分钟教你学会用Python轻松玩转Excel

    前言 当你需要每天对 Excel 做大量重复的操作,如果只靠人工来做既浪费时间,又十分枯燥,好在 Python 为我们提供了许多操作 Excel 的模块,能够让我们从繁琐的工作中腾出双手. 今天就和大 ...

  7. 1个月教你学会用Python实现机器学习

    什么是机器学习? 在最简单的层面上,机器学习只是优化数学方程式的过程.有几种不同的机器学习,都有不同的目的.机器学习中最流行的两种形式是监督学习和无监督的学习. 我们将在下面介绍他们的工作原理: .  ...

  8. 计算机修图教程,电脑修图太复杂 3步教你学会用手机做肤色后期

    电脑修图太复杂,学不会?没关系,现在手机软件也很强大.只要掌握调色原理,无论是电脑,还是手机通通没有问题. 羡慕我照片中的人像肤色白皙,红润有光泽?没关系,现在就传你手机后期肤色通透大法!三步搞定,直 ...

  9. 简单三步教你学会用Vegas做鬼畜!

    我相信很大一部分小伙伴用Vegas都是用来制作鬼畜视频的,尤其是当今鬼畜视频泛滥,更加吸引了很多小伙伴加入Vegas.那么这款软件该如何实现简单的鬼畜呢?接下来就为大家详细的介绍下! 步骤一: 首先下 ...

最新文章

  1. 从windows server的文件服务到分布式文件服务(八)
  2. 哈佛经济学教授卧底贫民窟8年,揭开穷人最大真相:这比贫穷更可怕
  3. angularjs学习曲线
  4. nginx重启、关闭
  5. 浏览器DNS_PROBE_FINISHED_NXDOMAIN报错解决办法
  6. python oop求三角形面积公式_Python OOP --action()函数
  7. 2009年云计算将引发一场黑客攻击高潮
  8. linux如何压缩磁盘,Linux初级运维(十二)——磁盘及文件系统管理
  9. guzz 1.3.0大版本发布,支持Spring事务
  10. MySQL查询优化:查询慢原因和解决技巧
  11. python深度学习进阶之行为检测详细学习路线(主要实现人员的行为类别、空间定位、时间定位)
  12. in_array函数漏洞
  13. 存储过程,函数——mysql批量添加随机生成用户信息(生成随机数)
  14. 关于机器人方面的sci论文_科学网—2014年SCI收录机器人期刊22种目录 - 万跃华的博文...
  15. Kylin 之Cube 构建优化
  16. Xilinx FPGA等效门数计算
  17. 给服务器下载补丁及安装补丁
  18. ZZNUOJ_C语言1032:员工薪水(完整代码)
  19. mysql中日期相减_非凡教育教你excel怎么计算两个日期天数差和时间差
  20. C语言—超长正整数的乘法实现简洁版

热门文章

  1. uniapp下载视频文件到手机相册
  2. 每个人都是从零开始,分享牛逼的前端工程师的牛逼学习方法
  3. 关于学计算机趣味段子,让你开怀大笑的段子:幽默风趣,读一遍笑一遍!
  4. 梦回江南 烟雨朦胧中 相思泪 不常有
  5. 计算机网络CPT简单应用
  6. git操作提示warning: redirecting to git@github.com:XXXXX
  7. 调谐质量阻尼器matlab,调谐质量阻尼器的组成及工作原理
  8. 巧用SEO技术,速提自然流量
  9. 七牛云 转码_七牛云试用指南-音视频基本处理
  10. 4.1 浏览器基础操作 2021-06-15