3步搞懂Python数据分析关键点!

Python数据分析步骤?一个案例教你搞懂 ! 本文首先将会介绍Python在数据分析领域最常见的两个包:pandas和numpy的使用,然后通过一个简单的案例巩固前面的内容。 阅读详情

 

 

 

 

 

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

Python资源共享群:484031800

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

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

A.变量和赋值

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

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

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

 

 

 

 

例如下图代码,“=”的作用就是赋值,同时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
请阅读代码块里的代码和注释,你会发现Python是及其易读易懂的。

B.数据类型

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

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

它们分别是这么写的:

列表(list):

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

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

#ist是一个可变的有序表,所以,可以往list中追加元素到末尾:
liebiao.append('瘦')
print(liebiao)
#结果1
>>>[1, 2.223, -3, '刘强东', '章泽天', '周杰伦', '昆凌', ['微博', 'B站', '抖音'], '瘦']
#也可以把元素插入到指定的位置,比如索引号为5的位置,插入“胖”这个元素:
liebiao.insert(5, '胖')
print(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 pd
df=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爬虫中经常被应用,因为 爬虫经常需要遍历每一个网页 ,以获取信息,所以构建完整而正确的网页链接十分关键。以某票房数据网为例,他的网站信息长这样:

 

 

 

 

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

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

 

 

 

 

我们要做的是, 遍历每一个日期下的网址,用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')

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

 

 

 

 

为了方便理解,我给大家画了一个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函数,变量是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:

零基础小白如何快速入门学习Python数据分析 Python人才需求大,据权威统计机构显示,2020年Python人才缺口高达80万。腾讯、阿里、百度、网易、谷歌、滴滴等大型互联网企业更是大量使用python开发。这一系列政策和市场迹象都表明,Python确是当下发展的新趋势。 Python开发的主要领域 网络爬虫:在爬虫领域,Python几乎是霸主地位,想爬啥就爬啥。 数据分析:实现数据可视化,直观的展示数据。 网站开发:借助django,flask框架自己搭建网站 人工智能:谁会成为AI和大数据时代的第一开发语言?Python!Python 阅读详情

相关推荐

《Python数据分析基础》学习记录000:为什么已经安装了pandas包,但是用Python3.8的IDLE却import不了?

花了两天时间过完《Python数据分析基础》的第一章:Python基础,终于开始接触第一个数据分析模块pandas。不料,却在简单的import上遭遇滑铁卢。 总结来看,主要遇到以下几个问题: 在cmd窗口查到有pandas包,但是在IDLE中却import pandas却报错! 比如这样: >>> import pandas as pd Traceback (most recent call last): File "<pyshell#0>", line 1, in

Haoyu_xie的博客 4117

3步搞懂Python数据分析关键点

3步搞懂Python数据分析关键点

yy1715713348的博客 411

搞懂python各种环境配置:PyCharm安装位置、Python 3.10安装、Python 3环境

PyCharm安装位置**:指的是PyCharm这个集成开发环境(IDE)安装在计算机硬盘上的具体路径 ,比如`D:\software\pycharm`。它本身不包含Python解释器,只是提供一个方**便编写、调试Python代码的图形化界面**。 - **Python 3.10安装**:是指将**Python 3.10版本的解释器**安装到计算机中。**Python解释器能把写好的Python代码翻译成计算机可执行的指令**。安装时可以选择安装路径,比如安装到**`C:\Python310` 。安装后

ZhangJiqun&191cm&85kg 747

初学为什么要学Python?python的30个操作难点总结!

初学为什么要学Python?python的30个操作难点总结!

xiqng17111342931的博客 1282

分享Python字符串关键点

字符串是 Python 中最常用的数据类型。我们可以使用引号来创建字符串。python字符串关键点有下面几点: 1.一些引号分隔的字符 你可以把字符串看出是Python的一种数据类型,在Python单引号或者双引号之间的字符数组或者连续的字符集合。在python中最常用的引号为(”)和(“”)。两者的功能是一样的,字符串的实际内容是引号之间的字符,不包含引号本身。 2.不可分字符类型 字符串是唯一的字面上的字符序列类型。不过,字符本身并不是一种类型,所以,字符串是字符存储操作的最基本单位。 3.字符串格式化操作符(%)提供类似printf()的功能 字符串格式化操作符提供了一种基于

Simulink实战:5步搞定固定翼飞行器六自由度动力学建模(附模型下载)

本文提供了一份详细的Simulink实战指南,通过5个核心步骤手把手教你构建固定翼飞行器的六自由度动力学模型。内容涵盖从顶层架构设计、核心方程手动实现,到模型集成、测试调试及进阶优化的完整流程,旨在帮助航空航天学生和工程师将抽象理论转化为可运行的仿真模型,并附有模型下载。

perl8的博客 634

《利用Python进行数据分析》第四章Numpy包重难点总结

笔者最近在学习《利用Python进行数据分析》一书,想通过写博客,对知识点加强巩固,避免对知识点遗忘过快。第一次写博客,若有做的不好的地方请谅解。(本文采用notebook编写程序) 1、Numpy的随机数组生成 import numpy as np #生成两行三列的随机数组 data = np.random.randn(2,3) data 生成结果 array([[ 2.326716 , 1.4890664 , 1.68326484], [ 0.21693349, -0.512471

weixin_47158583的博客 377

android10 部分机型(华为)无法正常更新安装app

android.content.ActivityNotFoundException: No Activity found to handle Intent { act=android.intent.action.VIEW dat=file://storage/emulated/0/文件夹名/***.apk typ=application/vnd.android.package-archive }

森森先生的博客 3927

数据分析 python 用途-Python 从爬虫到数据分析

大家好,我是大鹏,城市数据团联合发起人,致力于Python数据分析、数据可视化的应用与教学。和很多同学接触过程中,我发现自学Python数据分析的一个难点是资料繁多,过于复杂。大部分网上的资料总是从Python语法教起,夹杂着大量Python开发的知识点,花了很多时间却始终云里雾里,不知道哪些知识才是真正有用的。本来以为上手就能写爬虫出图,却在看基础的过程中消耗了一周又一周,以至于很多励志学习Py...

weixin_37988176的博客 443

树莓派5外接RTX显卡:从PCIe到驱动的完整踩坑指南

在ARM架构与GPU加速的交汇点,树莓派5凭借其PCIe接口为DIY爱好者打开了外接独立显卡的大门。然而,PCIe x1的带宽限制、供电差异以及NVIDIA驱动在ARM Linux上的兼容性,使得这一组合成为一场高强度的系统底层排错训练。从理解PCIe总线原理、驱动加载机制到CUDA环境配置,每一步都充满挑战。本文以工程实践视角,梳理外接RTX显卡的完整流程、常见故障与性能瓶颈,并探讨其在边缘计算、AI推理等场景下的真实价值,帮助你理性评估这一实验性方案的可行性与替代路径。

chubaisheng8627的博客 351

低功耗模式下的看门狗使用

最近用国产芯片AT32在做一个低功耗的项目,为了实现低功耗模式下的定时唤醒,我选择的是使用相对比较简单的看门狗来做,下面就分享一下使用过程~ 为了最大限度的降低功耗,我用的是待机模式,先看看几种低功耗模式以及唤醒的区别: 而看门狗AT32提供了两种,分别是独立看门狗(IWDG)和窗口看门狗(WWDG),其区别大概有以下几点: 1、独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效;窗口看门狗由从 APB1 时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常

dc18883988396的博客 3028

python数据分析_3步搞懂Python数据分析关键点

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

weixin_39646725的博客 194

告别裸机:在FreeRTOS上为STM32移植SOEM EtherCAT主站的思路与实战

本文详细介绍了在FreeRTOS环境下为STM32移植SOEM EtherCAT主站的工程实践。通过重构任务调度模型、优化内存管理和中断响应,成功将通信周期抖动控制在±100ns以内,满足工业控制系统的严苛实时性要求。文章包含完整的移植策略、性能优化方法和实测数据,为开发者提供了一套可靠的EtherCAT主站解决方案。

weixin_30342363的博客 388

python 分析两组数据的差异_3步搞懂Python数据分析关键点

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

weixin_39845039的博客 662

UG\NX二次开发 判断对象是虚线还是实线

网友提问“怎么区分虚线实线”,这个可以通过函数判断。

王牌飞行员_里海的博客 357

【Java基础知识 19】Java接口的作用和意义

Java接口是一系列方法的声明,是一些方法特征的集合,一个接口只有方法的特征没有方法的实现,因此这些方法可以在不同的地方被不同的类实现,而这些实现可以具有不同的行为(功能)。

学Java,找哪吒 2万+

Python数据分析到底需要做什么?一个案例教你搞懂 !

Python所有方向的学习路线图,清楚各个方向要学什么东西600多节Python课程视频,涵盖必备基础、爬虫和数据分析100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论爬虫与反爬虫攻防教程包,含15个大型网站迫解超300本Python电子好书,从入门到高阶应有尽有华为出品独家Python漫画教程,手机也能学习历年互联网企业Python面试真题,复习时非常方便。

python03012的博客 218

家庭弱电最实用的功能,网线面板如何接线

按照规范,我国宽带入户线按B接法,即568B标准,从后面看,从左到右:1橙白,2橙,3绿白,4蓝,5蓝白,6绿,7棕白,8棕,即和水晶头的接法一致。做水晶头的时候,要注意排好线序,把8根线的头剪齐,留下大约1.8公分,插入水晶头的时候,水晶头要尾巴向下,把线插到水晶头的底端,用网线钳子夹紧。具体是:第1脚——橙白、第2脚——橙色、第3脚——绿白、第4脚——蓝色、第5脚——蓝白、第6脚——绿色、第7脚——棕白、第8脚——棕色,除了四根带颜色的线橙、绿、蓝、棕外,每一根白线上都有线标橙、绿、蓝、棕。

qq_43416206的博客 1674

python数据分析建模-十分钟搞懂“Python数据分析”

原标题:十分钟搞懂"Python数据分析”引言:本文重点是用十分钟的时间帮读者建立Python数据分析的逻辑框架。其次,讲解"如何通过Python 函数或代码和统计学知识来实现数据分析”。本次介绍的建模框架图分为六大版块,依次为导入数据,数据探索,数据处理,建模,模型评估,模型调优(完整的逻辑框架图请看文章末尾处)。 在实际商业项目中,建模前的工作占据整个项目70%左右的时间。...

weixin_37988176的博客 2844

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

300 页干货!李宏毅《一天搞懂深度学习》(附下载)

今天给大家推荐李宏毅老师的一天搞懂深度学习ppt。李老师从以下四个方面进行介绍:第一部分:介绍深度学习第二部分:深度神经网络的建议第三部分:神经网络的多样性第四部分:未来趋势资料获取李宏...

weixin_44747933的博客 835

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

搞懂Python工具全家桶!Anaconda、Python、PyCharm、VSCode、Jupyter关系一次说清!

想少折腾,直接装Anaconda(自带Python+Jupyter),再装PyCharm社区版(免费),从基础到项目都够用;喜欢轻量工具,装Python(单独装)+VSCode(装Python和Jupyter插件),灵活又不占内存;做数据分析,优先用(Anaconda里自带,或VSCode装插件),边写边出结果超爽!看完是不是清晰多了?如果还有工具使用疑问,比如“Anaconda怎么创建环境”“VSCode怎么装Python插件”,可以评论区问~原文、姿料 这里!

2501_93508870的博客 1570

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

python 分析两组数据的差异_十分钟搞懂“Python数据分析”

引言:本文重点是用十分钟的时间帮读者建立Python数据分析的逻辑框架。其次,讲解“如何通过Python 函数或代码和统计学知识来实现数据分析”。本次介绍的建模框架图分为六大版块,依次为导入数据,数据探索,数据处理,建模,模型评估,模型调优(完整的逻辑框架图请看文章末尾处)。在实际商业项目中,建模前的工作占据整个项目70%左右的时间。读者可能会问你既然是模型预测,为什么不把更多时间放在模...

weixin_36295500的博客 4406

送书|带你一次性搞懂数据分析和数据挖掘!

????点击“Python乱炖”,获取更多书讯一直都有很多朋友想要学习数据分析,希望小编可以推荐一些靠谱的书。大家要么是看到了数据的重要性,想要转行做数据分析师,要么是本职工作需要,想要学习一些...

tongtongjing1765的博客 964

来,带你一次性搞懂数据分析和数据挖掘!

点击“博文视点Broadview”,获取更多书讯一直都有很多朋友想要学习数据分析,希望小编可以推荐一些靠谱的书。大家要么是看到了数据的重要性,想要转行做数据分析师,要么是本职工作需要,想要...

pdcfighting的博客 472
上一篇: 最简洁的Python时间序列可视化实现!
下一篇: Python基础 | 你想要的随机数生成都在这里!
普通网友
博客等级 码龄7年 438粉丝 263原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值