2024年Python最全Python新手入门教程_教你怎么用Python做数据分析

[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 pd
df=pd.DataFrame.from_dict(zidian,orient=‘index’,columns=[‘age’])#注意DataFrame的D和F是大写
df=df.reset_index().rename(columns={‘index’:‘name’})#给姓名加上字段名


![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509195425712.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FmbHVvaGFv,size_16,color_FFFFFF,t_70)


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


**是不是有很多东西在学Python新手入门教程的时候不懂的,在这里悟了一些呢!  
 以上三种数据类型是python数据分析中用的最多的类型,基础语法到此结束,接下来就可以着手写一些函数计算数据了。**


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


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


**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函数。


**爬虫和循环**


for函数在书写Python爬虫中经常被应用,因为爬虫经常需要遍历每一个网页,以获取信息,所以构建完整而正确的网页链接十分关键。以某票房数据网为例,他的网站信息长这样:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509195602605.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FmbHVvaGFv,size_16,color_FFFFFF,t_70)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509195631525.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FmbHVvaGFv,size_16,color_FFFFFF,t_70)


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


仔细观察,该网站不同日期的票房数据网址(url)只有后面的日期在变化,访问不同的网址(url)就可以看到不同日期下的票房数据:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509195656471.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FmbHVvaGFv,size_16,color_FFFFFF,t_70)  
 我们要做的是,遍历每一个日期下的网址,用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’)


滑动滑块可以看到完整代码和中间的注释。  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/2019050919574350.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FmbHVvaGFv,size_16,color_FFFFFF,t_70)  
 为了方便理解,我给大家画了一个for函数的遍历过程示意图:  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509195811883.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FmbHVvaGFv,size_16,color_FFFFFF,t_70)  
 此处省略掉后续爬取过程,相关爬虫代码见文末。我们使用爬虫爬取了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
#查看数据


![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509195913634.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FmbHVvaGFv,size_16,color_FFFFFF,t_70)  
 9行代码,我们完成了Excel里的透视表、拖动、排序等鼠标点击动作。最后再用Python中的可视化包matplotlib,快速出图:


![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509195936626.gif)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509200002376.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FmbHVvaGFv,size_16,color_FFFFFF,t_70)  
 **函数化分析**  
 以上是一个简单的统计分析过程。接下来就讲讲Excel基础功能不能做的事——自定义函数提效。观察数据可以发现,数据中记录了周票房和总票房的排名,**那么刚刚计算了周票房排名的代码,还能不能复用做一张总票房分析呢?**  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509200028908.jpg)


当然可以,只要使用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:**


![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509200122361.gif)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/20190509200136376.jpg?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FmbHVvaGFv,size_16,color_FFFFFF,t_70)  
 **学会函数的构建,一个数据分析师才算真正能够告别Excel的鼠标点击模式,迈入高效分析的领域。**


学Python新手入门教程的同时认真看一下这篇文章,相信很多东西你会恍然大悟。


### 关于Python技术储备


学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!


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


### 👉Python学习路线汇总👈


Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)  
 ![在这里插入图片描述](https://img-blog.csdnimg.cn/c7bac92961d743dfa8ce2e4b33f66d12.png)


### 👉Python必备开发工具👈


![在这里插入图片描述](https://img-blog.csdnimg.cn/ec2198fcaf4d4c3e81d8b86badfbd57d.png)



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

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照下面的知识点去找对应的学习资源,保证自己学得较为全面。

![img](https://img-blog.csdnimg.cn/1d40facda2b84990b8e1743f5487d455.png)  
![img](https://img-blog.csdnimg.cn/0fc11d4a31bd431dbf124f67f1749046.png)

**二、Python必备开发工具**

工具都帮大家整理好了,安装就可直接上手!![img](https://img-blog.csdnimg.cn/ff266f529c6a46c4bc28e5f895dec647.gif#pic_center)

**三、最新Python学习笔记**

当我学到一定基础,有自己的理解能力的时候,会去阅读一些前辈整理的书籍或者手写的笔记资料,这些笔记详细记载了他们对一些技术点的理解,这些理解是比较独到,可以学到不一样的思路。

![img](https://img-blog.csdnimg.cn/6d414e9f494742db8bcc3fa312200539.png)

**四、Python视频合集**

观看全面零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

![img](https://img-blog.csdnimg.cn/a806d9b941c645858c61d161aec43789.png)

**五、实战案例**

纸上得来终觉浅,要学会跟着视频一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。![img](https://img-blog.csdnimg.cn/a353983317b14d3c8856824a0d6186c1.png)

**六、面试宝典**

![在这里插入图片描述](https://img-blog.csdnimg.cn/97c454a3e5b4439b8600b50011cc8fe4.png)

![在这里插入图片描述](https://img-blog.csdnimg.cn/111f5462e7df433b981dc2430bb9ad39.png)

###### **简历模板**![在这里插入图片描述](https://img-blog.csdnimg.cn/646863996ac44da8af500c049bb72fbd.png#pic_center)




**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

**[需要这份系统化学习资料的朋友,可以戳这里无偿获取](https://bbs.csdn.net/topics/618317507)**

**一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值