当前位置:   article > 正文

【带读】Python数据分析-从入门到实践①

【带读】Python数据分析-从入门到实践①

1.一台安装了Python环境的设备

(Very Important!!!)

如果你仅仅是看了一条代码

你可能很快就忘了

但是如果你动手敲一敲

你对此的印象会深刻很多

下次遇到类似的需求时

你就会想起它

所以强烈建议

边看边敲!!!

2.《Python数据分析 从入门到实践》实体书

本文用书:

虽然接下来的带读都会提供代码和运行结果

但本文始终只是起到辅助的作用

虽然我尽可能将原书内容展现给大家

但也许未必能面面俱到

并且一些书中所用到的素材包

是原书中的配套文件

是用购买原书后的激活码到官网获取的

所以还是还是建议配合原书食用哦

本系列将从

《Python数据分析 从入门到实践》

此书中的第三章开始介绍

Python的数据分析工具

本书的第一第二章是介绍Python及其相关环境的搭建,这个并不难.所以就不展开介绍了 将重点放在数据分析的章节

第三章:Panda入门

主要介绍了

  • series对象

  • DataFrame对象

  • 导入外部数据

  • 数据的抽取和清洗

  • 数据的增删改

  • 数据的排序

图片

我将分为3个篇章进行带读

图片

本文是第一篇

学习Pandas的Series对象和DataFrame对象

学习目标

  • 学会创建一个Series对象

  • 学会通过位置索引、标签索引、切片索引

    获取数据

  • 学会通过二维数组和字典创建DataFrame

    对象

  • 了解DataFrame的重要属性和函数

图片

PART 01

Pandas

说到Panda

我们第一时间想到的肯定是我国的国宝大熊猫

那么在Python中

pandas也可以说是

在数据分析领域起着宝藏级作用的第三方库

pandas是数据分析的三大剑客之一

是Python的核心数据分析库

它提供了快速、灵活、明确的数据结构

能够简单、直观、快速地处理各种类型的数据

01

Pandas的功能及优势

Pandas能够处理以下类型的数据:

①与SQL或Excel表类似的数据。

②有序和无序(非固定颜率)的时间序列数据。

③带行列标签的矩阵数据。

Pandas的功能很多,它的优势如下:

①处理浮点与非浮点数据里的缺失数据,表示为NaN。

②大小可变,例如插入或刷除DataFrame等多维对象的列。

自动、显式数据对齐,显式地将对象与一组标签对齐,也可以忽略标签,在Series、DataFrame计算时自动与数据对齐。

③强大、灵活的分组统计(groupby)功能,即数据聚合、数据转换。

④可以把Python和NumPy数据结构里不规则、不同索引的数据轻松地转换为DataFrame对象。

⑤智能标签,对大型数据集进行切片、花式索引、子集分解等操作。

⑥直观地合并(merge)、连接(join)数据集。

⑦灵活地重塑(reshape)、透视(pivot)数据集。

⑧成熟的导入导出工具,导入文本文件(CSV等支持分隔符的文件)、Excel文件、数据库等来源的数据:导出Excl文件、文本文件等,利用超快的HDF5格式保存或加载数据。

⑨时间序列:支持日期范围生成、频率转换、移动窗口统计、移动窗口线性回归、日期位移等时间序列功能。

02

安装Pandas

pip install Pandas

Pandas的相关依赖库

pip install xlrdpip install xlwt

PART 02

Series对象

01

什么是Series

series是Python的pandas库中的一种数据结构,它类似一维数组,由一组数据及其相关的标签(索引)组成,或者只有一组数据而没有索引也可以创建一个简单的Series对象,Series可以储存整数、浮点数、字符串、Python对象等多种类型的数据。

02

创建Series对象

(对应书中章节:3.2.2)

创建一个series对象很简单

只需要一行代码

S1=pandans.Series(data,index=index)

参数说明:

data:表示数据,支持Python字典、多维数组、标量值(只有大小,没有方向的数值)

index:表示行标签(索引)

完整代码演示

import pandas as pd  #导入Pandass1=pd.Series([88,68,60],index=['语文','数学','英语'])  #index:索引print(s1)

运行结果:

图片

简简单单

我们就创建了一个

可以用来展示成绩的series对象

注:

当Series的data是一个多维数组时

index(索引)的长度必须与Data的一致

如:

s2=pd.Series([[100,80,60],[120,90,86]],index=['语文','数学'])print(s2)

运行结果:

图片

03

Series的索引

(对应书中3.2.3)

1

 Series位置索引

我们以刚刚创建的Series对象为例

讲解位置索引

下同

图片

位置索引:

顾名思义,内容所处的位置

位置索引从0开始

series[0]代表第一个数

如上例中,我们要获取Series中的第一行的内容

代码演示:

print(s1[0])

运行结果:

图片

02

通过标签索引获取值

在上例中

这里的标签指的就是“语文”,“数学”,“英语”

那么如果我们想要获取数学成绩的话

代码演示:

# #根据索引名称获取数据print(s1['数学'])

运行结果:

图片

也可以通过标签索引一次性获取多个数据​​​​​​​

# #一次性获取多个索引的值print(s1[['数学','英语']])

运行结果:

图片

03

标签切片索引

通过标签切片索引,可以一次性获取多个连续的数据

比如我们要获取数学到英语的数据

用位置索引获取就是​​​​​​​

# 获取数学到英语的数据print(s1['数学':'英语'])

运行结果:

图片

PS:切片索引是包头包尾的,即既包括索引开始位置的数据,也包括索引结束的位置

04

位置切片

位置切片和位置索引不同的一点是

位置切片是包头去尾的

(包含开始位置,但不包含结束位置)

例如以下代码

print(s1[1:3])

代表获取第二行(索引从0开始,所以1表示第二行)到第三行的数据

(3代表第四行,因为去尾,所以不包含第四行,故只切到第三行)

共两行的数据

所以我们来看看运行的结果:

图片

PART 03

DataFrame对象

01

什么是DataFrame

DataFrame是Pandas库中的一种数据结构,他是由多种类型的列组成的二维表数据结构,类似于EXCEL,SQL或Series对象构成的字典。DataFrame是最常用的Pandas数据类型,它和Series一样支持多种类型的数据.

02

创建一个DataFrame对象

创建DataFrame的基础语法

pandas.DataFrame(data,index,columns,dtype,copy)

参数说明:

data:表示数据,可以是ndarray数组、series对象、列表、字典等。

index:表示行标签(索引)

columns:列标签(索引)

dtype:每一列数据的数据类型,其与Python数据类型有所不同

如object数据类型对应的是Python的字符型

copy:用于复制数据

返回值:DataFrame。

创建DataFrame的方式有两种

01

用二维数组创建一个DataFrame对象

示例代码:​​​​​​​

import pandas as pdpd.set_option('display.unicode.east_asian_width',True)#设置数据data=[[110,115,111],[50,60,90],[46,45,66]]#行索引index=[0,1,2]#列索引col=['语文','数学','英语']d1=pd.DataFrame(data,index=index,columns=col)print(d1)

运行结果:

图片

02

通过字典创建DataFrame对象

注:

通过字典创建DataFrame,需要注意:字典中的vaue值只能是一维数组或单个的简单数据类型,如果是数组,则要求所有的数组长度一致;如果是单个数据,则每行都需要添加相同数据

(每一行和每一列的值的数量要相同,不能一列有三个值,而另一列只有两个值)

实例代码:​​​​​​​

import pandas as pdpd.set_option('display.unicode.east_asian_width',True)d1=pd.DataFrame({'数学':[111,120,130],   '英语':[121,210,230],   '语文':[211,420,230],    '班级':'高一七班'    },index=[0,1,2])#index 行索引

运行结果:

图片

在上述代码中,“班级”的vlue值是单个数据,所以每一行都添加了相同的数据“高一7班”。

通过二维数组和字典两种形式都是可以创建DataFrame

但我更喜欢用字典的方式创建

因为用字典的形式比较直观

字典的键对应DataFrame的列标签

字典的值对应DataFrame的值

一一对应的方式不容易弄混

03

 DataFrame的重要属性

首先创建一个3行3列的DataFrame

import pandas as pd
pd.set_option('display.unicode.east_asian_width',True)
#设置数据data=[[110,115,111],[50,60,90],[46,45,66]]
#行索引index=[0,1,2]
#列索引col=['语文','数学','英语']
d1=pd.DataFrame(data,index=index,columns=col)

DataFrame样式

图片

以这个DataFrame为例

查看其属性

01

查看所有元素的值

实例代码:

print(d1.values)

运行结果:

图片

查看第一行的值

print(d1.values[0])

运行结果:

图片

02

查看所有元素的类型

实例代码:

print(d1.dtypes)

运行结果:

图片

int64:整数

ogject:字符串

03

查看所有的行名

实例代码:

print(d1.index)

运行结果:

图片

04

重命名行名

实例代码:​​​​​​​

d1.index=['a','b','c']print(d1)

运行结果:

图片

注意左侧行名变为了a b c

05

行列数据转换

print(d1.T)

运行结果:

图片

行的数据变成列的数据 列的数据变成行的数据

06

查看前N条数据

语法:d1.head(N)

实例代码:​​​​​​​

#查看前两条数据print(d1.head(2))

运行结果:

图片

07

查看后N条数据

语法:d1.tail(N)

实例代码:

print(d1.tail(2))

运行结果:

图片

08

查看行数

实例代码:

print(d1.shape[0])

运行结果:

图片

09

查看列数

实例代码:

print(d1.shape[1])

运行结果:

图片

10

查看索引,数据类型及内存信息

实例代码:
print(d1.info )

运行结果:

图片

04

 DataFrame的重要函数

01

查看每一列的汇总信息

实例代码:

print(d1.describe())

运行结果:

图片

02

返回每一列非空值的个数

实例代码:

print(d1.count())

运行结果:

图片

03

返回每一列中空值的个数

实例代码:

print(d1.count())

运行结果:

图片

04

返回每一列的和 无法计算空值

实例代码

print(d1.sum())

运行结果:

图片

05

返回每一列的最大值

实例代码:

print(s1.max())

运行结果:

图片

06

返回每一列的最小值

实例代码:

print(d1.min())

运行结果:

图片

07

返回最大值所在的自动索引的位置

实例代码:

print(d1['语文'].idxmax())

运行结果:

图片

08

返回最小值所在的自动索引的位置

实例代码:

print(d1['语文'].idxmin())

运行结果:

图片

09

返回每一列的平均值

实例代码:

print(d1.mean())

运行结果:

图片

10

返回每一列的中位数

实例代码:

print(d1.median())

运行结果:

图片

11

返回每一列的方差

实例代码:

print(d1.var())

运行结果:

图片

12

返回每一列的标准差

实例代码:

print(d1.std())

运行结果:

图片

13

查看df中的空值

实例代码:

print(d1.isnull())

14

查看df中的非空值

实例代码:

print(d1.notnull())

运行结果:

图片

关于Python技术储备

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

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

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

在这里插入图片描述

二、Python必备开发工具

三、Python视频合集

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

四、实战案例

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

五、Python练习题

检查学习结果。

六、面试资料

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

 最后祝大家天天进步!!

上面这份完整版的Python全套学习资料已经上传至CSDN官方,朋友如果需要可以直接微信扫描下方CSDN官方认证二维码免费领取【保证100%免费】。

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号