pandas在数据预处理方面具有非常强大的功能,对pandas进行基本学习,能够借助pandas 完成数据的解析,在数据可视化中借助pandas完成数据解析,根据题意从给定的数据源中取出所需数据,并可以对数据做简单的统计运算。
从pandas最基本的series 和 dataframe 对象开始学习,基本上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[x] 索引访问时需要注意自定义的sertes标签索引 和 series默认的position 类型是否一致,当都为int64时,默认的position会被定义的索引覆盖,此时在通过series[x] 访问需要注意不能使用默认的position来访问。
补充:loc 和 iloc 的区别,
loc 通过标签(也就是series的索引)访问元素,接受整数索引和非整数索引(因为是标签)
iloc 通过整数索引访问元素,并且只能接受整数索引,这一点来看,跟列表的默认整数索引又很相似,允许-1 这样的从后访问元素。
loc([这里是行标识], [这里是列标识])
可以看出行列 的索引访问支持 切片,添加逻辑判断等操作。
iloc([这里是行标识], [这里是列标识])
语法与loc 看上去比较类似,但功能更为单一
一般访问series 可以有三种方式,一是loc,通过标签索引访问,这种方式只能接受标签作为参数,不能接受其他的参数类型,可以添加过滤条件。
一是通过iloc 索引访问,只能接受整数索引,也不能添加逻辑判断的过滤条件,但它不受标签值的影响可以一直通过整数索引访问,在对series排序后如果想获取首个元素,就可以通过iloc 来访问,因为此时标签的顺序已经改变。
或是直接通过series[] 访问,他同时支持标签访问和整数索引(序号,跟普通列表的默认索引一致),所以在一般情况下通过series[] 访问即可。
切片,取出元素
上面的访问方式等同于series['c':'a':-1]
同理,也支持整数索引(position)进行切片。
取值,根据需要
上面是根据序号进行取值,跟列表的默认索引原理一致即从0开始
同理,对标签索引也支持这样取值。
根据需要进行取值,即自定义条件
如上,既支持自定义的逻辑判断表达式,也支持lambda表达式。
一般情况下,以上几种访问方式基本能够满足使用。需要注意的是,在访问dataframe时,访问df中某一个具体元素时需要先传入行表索引再确定列索引。
对元素进行操作的前提就是先读取到数据,因此能正常读取到数据,修改也就是顺理成章了。
以上只是基本的修改,删除新增的方式,更复杂的 过滤 筛选 计数 排序 等功能未记录
目前而言,使用最多的应该会是读取文本文件的方式,读取到文件后就是一个dataframe 对象,之后的操作都是基于dataframe和series 来。
1).如果其中一个是数值,那么这个数值会和DataFrame的每个位置上的数据进行相应的运算。
2).参与运算的如果是两个DataFrame,有可能所有的行、列是一致的,那么运算时对应行列的位置进行相应的算术运算,若行列没有对齐,那么填值NaN。
3). 如果参与运算的一个是DataFrame,另一个是Series,那么pandas会对Series进行行方向的广播,然后做相应的运算。
4). 参与运算的两个DataFrame并非完全一样,即行列个数和行列名有可能都不同,那么有对应上的就做运算,无填充NaN。
5). 列方向也有相应的计算处理方式。如果是列方向的运算,一个是dataFrame,另一个是Series,首先将Series沿列方向广播,然后运算。
获取df 的列标签(列索引)值
获取df 的形状,即几行几列
获取df 的value的个数
返回当前df 的数据 和 index,columns 相对应
返回df 的每列值的数据类型
ndim 获取df 的 阶数,可以看成是维度数
对df 进行转置,即列和行颠倒。
pandas中的函数 一般会有两种结果,一是copy,即返回一个修改后的副本,原有的不变,二是inplace,即在原有基础上直接进行修改。
而且,这个一般会有一个inplace 的参数值指明是否是在原有基础上修改。
因为series 具有字典的一些特征,所以允许使用get 方法来获取数值,如果没有则返回默认值,而get_value 功能类似,但如果没有对应key则会抛出异常。
add 类似+ 运算,将两个series 相加得到结果,append 则是将一个series 连接在前一个series的后面,类似列表的相加。
统计series中非nan 的值,即非空值计数。
按索引排序 或 按数值排序,默认升序排列。
重置series 的index索引,同时有drop 参数可以选择是否删除索引。
reindex函数可以将series的index换成其他的index。新的series保留原serie的values值,如果新的index和原series的index不同,则不同的填充NaN值,或者使用fill_value参数指定填充值。
sum 求和函数。mean 求均值,同时有skipnan参数可选是否忽略nan 空值。
可获取一系列的统计信息,包含最大最小值,标准差,计数等统计信息。
max 获取series中最大值,idmax 获取最大值的标签或索引。
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