赞
踩
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 xlrd
pip 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 #导入Pandas
s1=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 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)
print(d1)
运行结果:
02
通过字典创建DataFrame对象
注:
通过字典创建DataFrame,需要注意:字典中的vaue值只能是一维数组或单个的简单数据类型,如果是数组,则要求所有的数组长度一致;如果是单个数据,则每行都需要添加相同数据
(每一行和每一列的值的数量要相同,不能一列有三个值,而另一列只有两个值)
实例代码:
import pandas as pd
pd.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%免费】。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。