首页 首页 大数据 查看内容

如果只有1小时学Python,看这篇就够了

木马童年 2019-10-6 13:45 42 0

大家好,我是大鹏,城市数据团联合发起人,致力于Python数据分析、数据可视化的应用与教学。和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂。大部分网上的资料总是从Python语法教起 ...

大家好,我是大鹏,城市数据团联合发起人,致力于Python数据分析、数据可视化的应用与教学。

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

如果只有1小时学Python,看这篇就够了

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

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

A.变量和赋值

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

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

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

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

如果只有1小时学Python,看这篇就够了

B.数据类型

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

  • 列表list(Python内置)

  • 字典dic(Python内置)

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

它们分别是这么写的:

列表(list):

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

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

字典(dict):

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

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

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

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

DataFrame:

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

  1. import pandas as pd 


  2. df=pd.DataFrame.from_dict(zidian,orient='index',columns=['age'])#注意DataFrame的D和F是大写 

  3. df=df.reset_index().rename(columns={'index':'name'})#给姓名加上字段名

如果只有1小时学Python,看这篇就够了

和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爬虫中经常被应用,因为爬虫经常需要遍历每一个网页,以获取信息,所以构建完整而正确的网页链接十分关键。以某票房数据网为例,他的网站信息长这样:

如果只有1小时学Python,看这篇就够了

如果只有1小时学Python,看这篇就够了

该网站的周票房json数据地址可以通过抓包工具找到,网址为http://www.cbooo.cn/BoxOffice/getWeekInfoData?sdate=20190114

仔细观察,该网站不同日期的票房数据网址(url)只有后面的日期在变化,访问不同的网址(url)就可以看到不同日期下的票房数据:如果只有1小时学Python,看这篇就够了

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

滑动滑块可以看到完整代码和中间的注释。

如果只有1小时学Python,看这篇就够了

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

如果只有1小时学Python,看这篇就够了

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

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

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

A.Python分析

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

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

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

如果只有1小时学Python,看这篇就够了

如果只有1小时学Python,看这篇就够了

B.函数化分析

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

如果只有1小时学Python,看这篇就够了

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

如果只有1小时学Python,看这篇就够了

如果只有1小时学Python,看这篇就够了

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

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

如果只有一小时学习,以上就是大家一定要掌握的Python知识点。

在不久的将来,多智时代一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏多智时代,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!

数据分析 数据可视化 数据格式 数据采集 统计分析 数据分析师
0
为您推荐
大数据技术改变城市的运作方式,智慧城市呼之欲出

大数据技术改变城市的运作方式,智慧城市呼

纽奥良虽像大多数城市一样有火灾侦测器安装计划,但直到最近还是要由市民主动申装。纽…...

大数据分析面临生死边缘,未来之路怎么走?

大数据分析面临生死边缘,未来之路怎么走?

大数据分析开始朝着营销落地,尤其像数果智能这类服务于企业的大数据分析供应商,不仅…...

什么是工业大数据,要通过3B和3C来理解?

什么是工业大数据,要通过3B和3C来理解?

核心提示:工业视角的转变如果说前三次工业革命分别从机械化、规模化、标准化、和自动…...

大数据普及为什么说肥了芯片厂商?

大数据普及为什么说肥了芯片厂商?

科技界默默无闻的存在,芯片行业年规模增长到了3520亿美元。半导体给无人驾驶汽车带来…...

大数据技术有哪些,为什么说云计算能力是大数据的根本!

大数据技术有哪些,为什么说云计算能力是大

历史规律告诉我们,任何一次大型技术革命,早期人们总是高估它的影响,会有一轮一轮的…...

个人征信牌照推迟落地,大数据 重新定义个人信用!!

个人征信牌照推迟落地,大数据 重新定义个

为金融学的基础正日益坚实。通过互联网大数据精准记录海量个人行为,进而形成分析结论…...