当前位置: 首页 > 资讯 > >正文

一文快速入门pandas

来源:哔哩哔哩    时间:2023-07-30 13:45:13

描述(概括)

pandas在数据预处理方面具有非常强大的功能,对pandas进行基本学习,能够借助pandas 完成数据的解析,在数据可视化中借助pandas完成数据解析,根据题意从给定的数据源中取出所需数据,并可以对数据做简单的统计运算。

从pandas最基本的series 和 dataframe 对象开始学习,基本上pandas的操作都是基于这两个对象。这一部分,是对pandas常用的方法的记录学习,以及基本的概念的学习。

pandas 入门概念

series 和 dataframe 这是pandas 中最为基本的两个概念,series 类似于一维数组,可以近似当成普通的数组进行操作,对于series 默认会有行索引为它索引,但特殊的同时与普通的一维数组不同 列表只能有从0开始的整数索引,而series则可以自定义标签索引,这一点来看,跟字典又比较相似,因此series又可以拥有类似字典的操作方式,series 的标签索引可以随时更新修改替换。series 提供有很多方便的方法,用于判断值为空的 isnull, notnull,sort_index(), sort_values() 用于排序的方法等。


(相关资料图)

而DataFrame是一种表格型数据结构,它含有一组有序的列,每列可以是不同的值。DataFrame既有行索引,也有列索引,它可以看作是由Series组成的字典,不过这些Series公用一个索引。DataFrame的创建有多种方式,不过最重要的还是根据dict进行创建,以及读取csv或者txt文件来创建。

series 相关基本操作

1. 访问series 元素的方式

注意点:

通过series[x] 索引访问时需要注意自定义的sertes标签索引 和 series默认的position 类型是否一致,当都为int64时,默认的position会被定义的索引覆盖,此时在通过series[x] 访问需要注意不能使用默认的position来访问。

补充:loc 和 iloc 的区别,

loc 通过标签(也就是series的索引)访问元素,接受整数索引和非整数索引(因为是标签)

iloc 通过整数索引访问元素,并且只能接受整数索引,这一点来看,跟列表的默认整数索引又很相似,允许-1 这样的从后访问元素。

loc 用法(Dataframe):

loc([这里是行标识], [这里是列标识])

示例:

可以看出行列 的索引访问支持 切片添加逻辑判断等操作。

iloc 用法(Dataframe)

iloc([这里是行标识], [这里是列标识])   

语法与loc 看上去比较类似,但功能更为单一

示例:

总结:

一般访问series 可以有三种方式,一是loc,通过标签索引访问,这种方式只能接受标签作为参数,不能接受其他的参数类型,可以添加过滤条件。

一是通过iloc 索引访问,只能接受整数索引,也不能添加逻辑判断的过滤条件,但它不受标签值的影响可以一直通过整数索引访问,在对series排序后如果想获取首个元素,就可以通过iloc 来访问,因为此时标签的顺序已经改变。

或是直接通过series[] 访问,他同时支持标签访问和整数索引(序号,跟普通列表的默认索引一致),所以在一般情况下通过series[] 访问即可。

切片 和 取值 使用

切片,取出元素

上面的访问方式等同于series['c':'a':-1]

同理,也支持整数索引(position)进行切片。

取值,根据需要

上面是根据序号进行取值,跟列表的默认索引原理一致即从0开始

同理,对标签索引也支持这样取值。

根据需要进行取值,即自定义条件

如上,既支持自定义的逻辑判断表达式,也支持lambda表达式。

2. 对series 元素操作的方式

dataframe 相关基本操作

1. 访问dataframe 元素的方式

一般情况下,以上几种访问方式基本能够满足使用。需要注意的是,在访问dataframe时,访问df中某一个具体元素时需要先传入行表索引再确定列索引。

2. 对dataframe 元素进行操作的方式

对元素进行操作的前提就是先读取到数据,因此能正常读取到数据,修改也就是顺理成章了。

以上只是基本的修改,删除新增的方式,更复杂的 过滤 筛选 计数 排序 等功能未记录

3. 获取到dataframe 数据的方式

目前而言,使用最多的应该会是读取文本文件的方式,读取到文件后就是一个dataframe 对象,之后的操作都是基于dataframe和series 来。

4. dataframe 相关算术运算

1).如果其中一个是数值,那么这个数值会和DataFrame的每个位置上的数据进行相应的运算。

2).参与运算的如果是两个DataFrame,有可能所有的行、列是一致的,那么运算时对应行列的位置进行相应的算术运算,若行列没有对齐,那么填值NaN。

3). 如果参与运算的一个是DataFrame,另一个是Series,那么pandas会对Series进行行方向的广播,然后做相应的运算。

4). 参与运算的两个DataFrame并非完全一样,即行列个数和行列名有可能都不同,那么有对应上的就做运算,无填充NaN。

5). 列方向也有相应的计算处理方式。如果是列方向的运算,一个是dataFrame,另一个是Series,首先将Series沿列方向广播,然后运算。

dataframe 的常用属性

1. columns 属性

获取df 的列标签(列索引)值

2. shape 属性

获取df 的形状,即几行几列

3. size 属性

获取df 的value的个数

4. values 属性

返回当前df  的数据 和 index,columns 相对应

5. dtypes 属性

返回df 的每列值的数据类型

6. ndim 属性

ndim 获取df 的 阶数,可以看成是维度数

7. T 属性

对df 进行转置,即列和行颠倒。

pandas 常用函数

pandas中的函数 一般会有两种结果,一是copy,即返回一个修改后的副本,原有的不变,二是inplace,即在原有基础上直接进行修改。

而且,这个一般会有一个inplace 的参数值指明是否是在原有基础上修改。

series 中的常用函数

1. get() 和 get_value() 方法

因为series 具有字典的一些特征,所以允许使用get 方法来获取数值,如果没有则返回默认值,而get_value 功能类似,但如果没有对应key则会抛出异常。

2. add() 和 append() 方法

add 类似+ 运算,将两个series 相加得到结果,append 则是将一个series 连接在前一个series的后面,类似列表的相加。

3.  count() 方法

统计series中非nan 的值,即非空值计数。

4. sort_index() 和 sort_values() 方法

按索引排序 或 按数值排序,默认升序排列。

5. reset_index() 方法

重置series 的index索引,同时有drop 参数可以选择是否删除索引。

6. reindex() 方法

reindex函数可以将series的index换成其他的index。新的series保留原serie的values值,如果新的index和原series的index不同,则不同的填充NaN值,或者使用fill_value参数指定填充值。

series 中的统计函数

1. sum() 方法 和 mean() 方法

sum 求和函数。mean 求均值,同时有skipnan参数可选是否忽略nan 空值。

2. describe() 方法

可获取一系列的统计信息,包含最大最小值,标准差,计数等统计信息。

3. max() 和 idmax() 方法

max 获取series中最大值,idmax 获取最大值的标签或索引。

4. var() 和 std() 以及 mad() 方法

var 获取series 的方差,std 获取标准差是对var 的求算术平方根,mad 平均绝对离差,是用样本数据相对于其平均值的绝对距离来度量数据的离散程度

注意:dataframe 中的统计函数与series中的相关统计函数基本一致,使用方法基本没有区别。

补充:

divmod(x, y)

divmod() 函数返回当参数 1 除以参数 2 时包含商和余数的元组。

X 关闭

推荐内容

最近更新

Copyright ©  2015-2022 华声机械网版权所有  备案号:京ICP备2021034106号-36   联系邮箱:55 16 53 8 @qq.com