当前位置:   article > 正文

Python新手入门教程 | 如何用Python进行数据分析(非常详细)

用python进行数据分析

有小伙伴在学Python新手教程的时候说学Python比较复杂的地方就是资料太多了,比较复杂。

很多网上的资料都是从语法教起的,花了很多时间还是云里雾里,摸不清方向。今天就给大家来捋一捋思路!帮助大家提高学习效率!

img

三大板块:

  • 两组Python基础术语
  • 如何实现爬虫
  • 如何做数据分析

1.两大Python基础术语

A.变量和赋值

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

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

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

img

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

复制代码a=4 #整型数据
b=2 #整型数据
c=“4” #字符串数据
d=“2” #字符串数据
print(“a+b结果为”,a+b)#两个整数相加,结果是6
print(“c+d结果为”,c+d)#两个文本合并,结果是文本“42”
#以下为运行结果
>>>a+b结果为 6
>>>c+d结果为 42
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

请阅读代码块里的代码和注释,你会发现Python是及其易读易懂的。

B.数据类型

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

  • 列表list(Python内置)
  • 字典dic(Python内置)
  • DataFrame(工具包pandas下的数据类型,需要import pandas才能调用)

它们分别是这么写的:

列表(list):

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

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站', '抖音'], '瘦']
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

字典(dict):

复制代码#字典
zidian={'刘强东':'46','章泽天':'36','周杰伦':'40','昆凌':'26'}
  • 1
  • 2

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

就可以这么写:

复制代码zidian['周杰伦']
>>>'40'
  • 1
  • 2

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

DataFrame:

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

以上面的字典为例,转化为DataFrame是这样的:

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

img

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

是不是有很多东西在学Python新手入门教程的时候不懂的,在这里悟了一些呢!

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

2.从Python爬虫来学循环函数

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

  • for函数

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

复制代码zidian={'刘强东':'46','章泽天':'36','周杰伦':'40','昆凌':'26'}
for key in zidian:
 print(key)
>>>
刘强东
章泽天
周杰伦
昆凌
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

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

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

  • 爬虫和循环

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

img

img

该网站的周票房json数据地址可以通过抓包工具找到,网址为www.cbooo.cn/BoxOffice/g…

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

img

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

复制代码import pandas as pd
url_df = pd.DataFrame({'urls':['http://www.cbooo.cn/BoxOffice/getWeekInfoData?sdate=' for i in range(5)],'date' :pd.date_range(20190114,freq = 'W-MON',periods = 5)})
'''
将网址相同的部分生成5次,并利用pandas的时间序列功能生成5个星期一对应的日期。
其中用到了第一部分提供的多个数据类型:
range(5)属于列表,
'urls':[]属于字典,
pd.dataframe属于dataframe
'''
url_df['urls'] = url_df['urls'] + url_df['date'].astype('str')
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

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

img

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

img

此处省略掉后续爬取过程,相关爬虫代码见文末。我们使用爬虫爬取了5800+条数据,包含20个字段,时间囊括了从2008年1月

开始至2019年2月十一年期间的单周票房、累计票房、观影人次、场均人次、场均票价、场次环比变化等信息

3. 用Python实现数据分析?

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

  • 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
#查看数据
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15

img

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

img

img

  • 函数化分析

以上是一个简单的统计分析过程。接下来就讲讲Excel基础功能不能做的事——自定义函数提效。观察数据可以发现,

数据中记录了周票房和总票房的排名,那么刚刚计算了周票房排名的代码,还能不能复用做一张总票房分析呢?

img

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

def pypic(pf):

#定义一个pypic函数,变量是pf

dataTop1_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:

img

img

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

以上就是今天的全部内容分享,觉得有用的话欢迎点赞收藏哦!

Python经验分享

学好 Python 不论是用于就业还是做副业赚钱都不错,而且学好Python还能契合未来发展趋势——人工智能、机器学习、深度学习等。
小编是一名Python开发工程师,自己整理了一套最新的Python系统学习教程,包括从基础的python脚本到web开发、爬虫、数据分析、数据可视化、机器学习等。如果你也喜欢编程,想通过学习Python转行、做副业或者提升工作效率,这份【最新全套Python学习资料】 一定对你有用!

小编为对Python感兴趣的小伙伴准备了以下籽料 !

对于0基础小白入门:

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

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

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等学习教程。带你从零基础系统性的学好Python!

一、Python所有方向的学习路线

Python所有方向路线就是把Python常用的技术点做整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

二、学习软件

工欲善其事必先利其器。学习Python常用的开发软件都在这里了,给大家节省了很多时间。

三、入门学习视频

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了。

四、实战案例

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

五、面试资料

我们学习Python必然是为了找到高薪的工作,下面这些面试题是来自阿里、腾讯、字节等一线互联网大厂最新的面试资料,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。


最新全套【Python入门到进阶资料 & 实战源码 &安装工具】(安全链接,放心点击)

我已经上传至CSDN官方,如果需要可以扫描下方官方二维码免费获取【保证100%免费】

*今天的分享就到这里,喜欢且对你有所帮助的话,记得点赞关注哦~下回见 !

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/693261
推荐阅读
相关标签
  

闽ICP备14008679号