pandas常用函数汇总

pandas常用函数汇总,第1张

pandas的DataFrame对象,本质上是 二维矩阵 ,跟常规二维矩阵的差别在于前者额外指定了每一行和每一列的 名称 。这样内部数据抽取既可以用“ 行列名称(对应loc[]方法) ”,也可以用“矩阵下标( 对应iloc[]方法 )”两种方式进行。

下面具体说明:

(以下程序均在Jupyter notebook中进行,部分语句的print()函数省略)

首先生成一个DataFrame对象:

DataFrame对象生成时除了必须指定data参数外,用户还可以指定两个参数columns(列名)和index(行名,注意这里的index不仅可以是数字,也可以是用户指定的任何数据类型,如字母), 如果不指定,则行列名默认都采用0、1、2……

下图说明了前面的情况:

loc[行标签名/[行标签名list],列标签名/[列标签名list]],即有两个输入参数,第一个指定行名,第二个指定列名。当只有一个参数时,默认是行名(即抽取整行),所有列都选中。

loc[行位置/[行位置list],列位置/[列位置list]],也有两个输入参数,第一个指定行位置,第二个指定列位置。当只有一个参数时,默认是行位置(即抽取整行),所有列都选中。

上述loc[]和iloc[]都只接收了1个参数“语文”或者“0”,因此默认都表示行信息,而列则全部被选中,即抽取'语文'这整一行数据。','表示将两个参数隔开(如果有两个参数的话),':'这里表示选择中所有列。当只有一个输入参数时,python默认','和':'既可写上也可省略。注意:参数['语文']或[0]中只有一个对象时(即只有一行),[]也可以省略,如果有多个对象(即多行)则必须加上[]。此外还需注意,加上[]表示抽取的结果无论是一个数据,一行数据,还是一列数据,他都是DataFrame对象;不加[]时,如果选中的是一行或者一列数据,则是Series对象,如果是一个单独的数据,则是该数据本身的类型。

例2和例1唯一的差别是,第一个参数指定了多行一起输出,此时必须用[]将各行名或者下标括起来,否则出错。后面的','和':'同例1,可省略。注意:原始数据的行顺序是:语文、数学、英语、政治,这里的提取顺序是['英语','语文','政治'],而输出也是'英语','语文','政治',可见输出顺序和参数指定顺序是一致的,而非按原始顺序输出。

例3依然是接受1个参数,列参数没有,后面的','和':'同例1,可省略。连续参数用‘start:end’的方式指定行范围。注意:这里不能用[]将其括起来,否则出错。此外用行列名连续取值时,比如['语文':'政治']会把'政治'所在行也取出来,而利用矩阵下标时,0:3只取0,1,2对应的三行,最后一行不会取出;但是如果行列标签名本身就是整数0,1,2……,而不是文字或者其他类型,那么在使用连续行列标签名取数据时,最后一行或者列是不会被取出的。

抽取整列的方式跟抽取整行在参数设置上完全一样。loc[]和iloc[]两个方法默认列为第二个参数, 因此抽取整列时,都必须带上':,'作为区分前面行参数的‘分隔符’,否则出错

同时抽取分部行和列的情况,就是把上述单独抽取行和列的方式合并起来用。抽取整个DataFrame对象则是loc[:,:]或iloc[:,:],虽然这么做没啥意义。

(1)DataFrame对象的loc[,]和iloc[,]方法用于抽取数据,loc[,]用行列的标签名作为参数,iloc[,]用二维矩阵元素的网格下标作为参数。

(2)两个方法都接受两个参数,第一个是“行标签”或者“矩阵行号”,第二个是“列标签”或者“矩阵列号”。

(3)两种方法当只指定一个输入参数时,都默是跟“行”相关,而“列”则全部被选中。如何行和列都需要指定时,中间用“逗号,”隔开,这非常重要,否则出错。

(4)当需要选中所有行的某几列时,行参数可以省略,列参数需要指定,此时列参数前面必须带上“,:”,形如loc[:,列参数],iloc[:,列参数]。

(5)loc[,]和iloc[,]设置了一个还是两个输入参数,关键看有没有“,”将两个参数分开,且要区分逗号是一个参数的内部逗号,还有用于分隔行列参数的逗号。

(6)对于两个参数的概念区分,loc['语文','数学']这表示输入了两个参数,行参数是‘语文’,列参数是‘数学’,对于上面的表格而言这是错的,因为没有叫‘数学’的列,应写为[['语文','数学']],即‘数学’也是行参数的一部分,['语文','数学']整体作为一个行参数,这里的逗号不是用以分隔行和列,仅仅是行list里面的逗号。[['语文','数学']]=[['语文','数学'],]=[['语文','数学'],:],都表示只有一个行参数,列全部选中。

import

xlrddata

=

xlrdopen_workbook('excelFilexls')table

=

datasheets()[0]

#通过索引顺序获取table

=

datasheet_by_index(0)

#通过索引顺序获取table

=

datasheet_by_name(u'Sheet1')#通过名称获取

鼠标选中a1格,按住左键,向下拖到最后一格,就选中一列。如果继续横向拖,就能选中一个区域。

鼠标选中a1格,按住左键,向左拖到最后一格,就选中了一行,继续向下拖,也可以选中一个区域。

楼上说的是键盘 *** 作法,我说的是鼠标 *** 作法。

首先把需要筛选的列转化为pandascorestringsStringMethods,然后再用contains函数来得到布尔值的 (因为直接取行/列为Series对象,而不能直接对Series对象使用contains)Series:

筛选可以直接利用[ ]来完成:

同理,可以使用str函数来对DataFrame的的行/列做对于字符串的 *** 作:

sstrlower()

sstrupper()

sstrlen()

sstrstrip()

sstrsplit(' ')

sstrreplace('@','$')

sstrcount()

sstrstartswith()

sstrendswith()

sstrfind()

sstrfindall()

sstrswapcase()

sstrisupper()

sstrislower()

sstrisnumeric()

上篇,我们讲了python使用openpyxl库来做 *** execl表。实际使用中,个人认为openpyxl适合读写某个单独或少量的表格比较合适。如果是数组类的数据和execl表格交互,就需要遍历了。

这篇,我们介绍另一个库——pandas

上干货;

参考链接:

>

pandas读取前100行用时半个小时。使用Python进行数据分析之前,需要预先导入相对应的功能库。数据分析最常用的库包括用于数值计算的numpy,基于numpy构建的用于科学计算的Pandas库,用于数据可视化的matplotlib和提供各种 *** 作系统功能接口的OS库。我们将这几个库导入到python中, import后是导入库的名称 as后是库的简称。例如pandas库的简称是pd,在后面的代码中看到pd就表示这个 *** 作使用了pandas库

以上就是关于pandas常用函数汇总全部的内容,包括:pandas常用函数汇总、Python pandas用法、Panadas 中利用DataFrame对象的.loc[,]、.iloc[,]方法抽取数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9593114.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存