Pandas3——excel【行、列、单元格】

Pandas3——excel【行、列、单元格】,第1张

取行、列和单元格的几种常用方式:

DataFrame[ 列名 ]: 取单列或多列,不能用连续方式取,也不能用于取行。

DataFrame列名: 只用于取单列,不能用于行。

DataFrame[ i:j ]: 用起始行下标(i)和终止行下标(j)取单行或者连续多行,不能用于列的选取。

DataFrameloc[行名,列名]: 用对象的loc[]方法实现各种取数据方式。

DataFrameiloc[行下标,列下标]: 用对象的iloc[]方法实现各种取数据方式。

DataFrame[criteria]:criteria数据筛选规则

DataFrameat[行,列]:获取第0行,第a列的值,即:index=0,columns='a'

推荐视频链接

根据行索引和列名,获取一个元素的值

根据行索引和列索引获取 元素值

选取元素,或者行

选取元素

选取行返回一个series

选取行列返回dataframe

按索引选取元素

获取行的series

到此这篇关于详解pandas获取[Dataframe]

原文:

1、 详解pandas获取Dataframe元素值的几种方法

2、 >

一维数组情况:

二维数组情况:

3参数情况:

2参数情况:

1参数情况:

一维情况:

二维情况:

一维情况:

二维情况:

一维情况:

二维情况:第三个参数指定维度

只查看行数、或者列数

逗号隔开两个索引

某些行

某些列

可以看出append()函数在二维数组中添加元素,结果转为了一维数组。

那怎么保持二维数组呢?可以设置axis参数按行或者按列添加

可以看出先把二维数组降成了一维数组,再在索引为1的位置添加元素。

那么怎么保持在二维添加元素呢? 同样设置axis参数

也分按行和按列删除

标记缺失值: isnan()函数

补充缺失值:

同样axis参数可以指定拼接按行还是按列

2 hstack()函数:以水平堆叠的方式拼接数组

3 vstack()函数:以垂直堆叠的方式拼接数组

第二个参数还可以是数组,指定拆分的位置

hsplit()函数:横向拆成几个数组

vsplit()函数:纵向拆成几个数组

数组与数组之间的运算

数组与数值的运算

可以指定整个数组求和,还是按行或者按列

axis=0:每一列的元素求和

axis=1:每一行的元素求和

axis=0:每一列求均值

axis=1:每一行求均值

axis=0:每一列求最大值

axis=1:每一行求最大值

pandas有两个重要的数据结构对象:Series和DataFrame。

Series是创建一个一维数组对象,会自动生成行标签。

会自动生成行列标签

也可以用字典形式生成数据

在用字典生成数据的基础上,同时指定行标签

例如对下表的数据进行读取

4月是第四个表,我们应把sheet_name参数指定为3;因为索引是从0开始的。

可以看出read_excel()函数自动创建了一个DataFrame对象,同时自动把第一行数据当做列标签。

可以看出不给出header参数时,该参数默认为0。

header=1时结果如下:

header=None时结果如下:

index_col=0时,第0列为列标签

index_col=0时

usecols=[2]:指定第二列

指定多列

数据如下:

[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-j1SHxY8y-1637655972909)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211114192949607png)]

nrows=3时

head()函数中参数为空默认前5行

指定head(3)时如下

numpy模块也是shape

查看特定列的书库类型

特定列数据类型转换

先查看一下所有数据

与单行相比,结果显示的格式不一样了

iloc()挑选:

或者给出区间

挑选数据要么标签,要么索引挑选

或者

或者写成区间

标签挑选

或者索引挑选

先查看一下数据

或者用字典一对一修改

[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-a6QKIoie-1637655972912)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123110431201png)]

isin()函数查看表中是否有该值

查看特定列是否有该值

可以看出上述代码并没有替换,那怎么替换呢?

末尾插入一列

指定插入到哪列

axis参数可以指定删除行还是删除列

指定标签删除

指定索引删除

方法三

指定行标签删除

指定索引删除

方法三:

先查看所有数据

info()函数查看数据类型,还可以查看是否有缺失值

isnull()函数查看是否有缺失值

在numpy模块中用isnan()函数

删除有缺失值的行

删除整行都为缺失值的行: 需要指定how参数

不同列的缺失值设置不同的填充值

默认保留第一个重复值所在的行,删除其他重复值所在的行

保留第一个重复值所在的行

保留最后一个重复值所在的行

是重复的就删除

降序如下

参数指定first时,表示在数据有重复值时,越先出现的数据排名越靠前

获取产品为单肩包的行数据

获取数量>60的行数据

获取产品为单肩包 且 数量>60 的行数据

获取产品为单肩包 或 数量>60 的行数据

stack()函数转换成树形结构

how参数指定外连接

on参数指定按哪一列合并

concat()函数采用 全连接 的方式,没有的数设置为缺失值

重置行标签

效果与concat()一样

末尾添加行元素

指定列求和

指定列求均值

指定列求最值

获取单列的

corr()函数获取相关系数

获取指定列与其他列的相关系数

[外链转存失败,源站可能有防盗链机制,建议将保存下来直接上传(img-46g9qgQw-1637655972913)(C:Users14051AppDataRoamingTypora ypora-user-imagesimage-20211123135643804png)]

groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。

分组后获取指定列的汇总情况

获取多列的汇总情况

获取多列的情况

ta = pdread_excel(‘相关性分析xlsx’)

print(data)

corr()函数获取相关系数

获取指定列与其他列的相关系数

[外链转存中…(img-46g9qgQw-1637655972913)]

groupby()函数返回的是一个DataFrameBy对象,该对象包含分组后的数据,但是不能直观地显示出来。

分组后获取指定列的汇总情况

获取多列的汇总情况

获取多列的情况

DataFrame对象:二维表数据结构,由行列数据组成的表格

常用index表示行,columns表示列

'''

  语文  数学  英语

0  110  105    99

1  105    88  115

2  109  120  130

'''

# print(dfcolumns)  # Index(['语文', '数学', '英语'], dtype='object')

# print(dfindex)  # Int64Index([0, 1, 2], dtype='int64')

# 遍历DataFrame数据的每一列

'''

0    110

1    105

2    109

Name: 语文, dtype: int64

0    105

1    88

2    120

Name: 数学, dtype: int64

0    99

1    115

2    130

Name: 英语, dtype: int64

'''

1创建一个DataFrame对象

pandasDataFrame(data,index,columns,dtype,copy)

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

# index表示行标签(索引)

# columns表示列标签(索引)

# dtype每一列数据的数据类型

# copy用于复制数据

# 返回值DataFrame

通过二维数组创建成绩表

'''

  语文  数学  英语

0  110  105    99

1  105    88  115

2  109  120  130

'''

2通过字典创建DataFrame对象

value值只能是一维数组或单个的简单数据类型

# 数组,则要求所有的数组长度一致

# 单个数据,每行都需要添加相同数据

'''

  语文  数学  英语    班级

0  110  105  109  高一7班

1  105    88  120  高一7班

2    99  115  130  高一7班

'''

'''

DataFrame属性

values 查看所有元素的值  dfvalues

dtypes 查看所有元素的类型  dfdtypes

index 查看所有行名、重命名行名  dfindex    dfindex=[1,2,3]

columns 查看所有列名、重命名列名  dfcolumns  dfcolumns=['语','数']

T 行列数据转换  dfT

head 查看前n条数据,默认5条                dfhead()  dfhead(10)

tail 查看后n条数据,默认5条                dftail()  dftail(10)

shape 查看行数和列数,[0]表示行,[1]表示列    dfshape[0]  dfshape[1]

info 查看索引,数据类型和内存信息    dfinfo

DataFrame函数

describe 查看每列的统计汇总信息,DataFrame类型  dfdescribe()

count    返回每一列中的非空值的个数              dfcount()

sum      返回每一列和和,无法计算返回空值      dfsum()

max      返回每一列的最大值                dfmax()

min      返回每一列的最小值                dfmin()

argmax  返回最大值所在的自动索引位置        dfargmax()

argmin  返回最小值所在的自动索引位置        dfargmin()

idxmax  返回最大值所在的自定义索引位置      dfidxmax()

idxmin  返回最小值所在的自定义索引位置      dfidxmin()

mean    返回每一列的平均值                dfmean()

median  返回每一列的中位数                dfmedian()

var      返回每一列的方差                  dfvar()

std      返回每一列的标准差  dfstd()

isnull  检查df中的空值,空值为True,否则为False,返回布尔型数组  dfisnull()

notnull  检查df中的空值,非空值为True,否则为False,返回布尔型数组  dfnotnull()

中位数又称中值,是指按顺序排列的一组数据中居于中间位置的数

方差用于度量单个随机变量的离散程序(不连续程度)

标准差是方差的算术平方根,反映数据集的离散程度

'''

3 导入xls或xlsx文件

# pandasread_excel(io,sheetname=0,header=0,names=None,index_col=None,usecols=None,squeeze=False,dtype=None,engine=None,converters=None,true_values=None,false_values=None,skiprows=None,nrow=None,na_values=None,keep_defalut_na=True,verbose=False,parse_dates=False,date_parser=None,thousands=None,comment=None,skipfooter=0,conver_float=True,mangle_dupe_cols=True,kwds)

'''

io 字符串,xls或xlsx文件路径或类文件对象

sheet_name:None、字符串、整数、字符串列表或整数列表,默认值为0

    字符串用于工作表名称;整数为索引,表示工作表位置

    字符串列表或整数列表用于请求多个工作表,为None时则获取所有的工作表

    sheet_name = 0 第一个Sheet页中的数据作为DataFrame对象

    sheet_name = 1 第二个Sheet页中的数据作为DataFrame对象

    sheet_name = 'Sheet1' 名为Sheet1的Sheet页中的数据作为DataFrame对象

    sheet_name = [0,1,'Sheet3'] 第一个,第二个和名为Sheet3的Sheet页中的数据作为DataFrame对象

header:指定作为列名的行,默认值为0,即取第一行的值为列名。或数据不包含列名,则为header=None

names:默认值为None,要使用的列名列表

index_col:指定列为索引列,默认值为None,索引0是DataFrame对象的行标签

usecols:int、list或字符串,默认值为None

    如为None,则解析所有列

    如为int,则解析最后一列

    如为list列表,则解析列号和列表的列

    如为字符串,则表示以逗号分隔的Excel列字母和列范围列表

squeeze:布尔值,默认为False,如果解析的数据只包含一列,则返回一个Series

dtype:列的数据类型名称为字典,默认值为None

skiprows:省略指定行数的数据,从第一行开始

skipfooter:省略指定行数的数据,从尾部数的行开始

4导入指定Sheet页的数据

# sheet_name=0表示第一个sheet页的数据,以此类推,如果不指定,则导入第一页

5指定行索引导入Excel数据

'''

Empty DataFrame

Columns: []

Index: [1, 3, 5]

'''

# 导入第一列数据

'''

Empty DataFrame

Columns: []

Index: [1, 3, 5]

'''

假设有这么一个DataFrame数据:有两列,name列为姓名,age列为年龄,其中年龄为随机生成,如下图:

我们可以使用loc来得到age>20的行:

dataloc[条件]

其中条件为data['age']>20

即:dataloc[data['age']>20]

这样就会得到age>20的所有行数据(包括所有列)。

如果我们并不需要所有所有列,那可以再指定要保留的列:

dataloc[data['age']>20,'age']

这样就会得到age>20的所有行的数据(只包括age列)。

如果此时我们再在后面加一个values,这样也就得到了如提问所示的某一列的部分数字的值的数组了:

以上就是关于Pandas3——excel【行、列、单元格】全部的内容,包括:Pandas3——excel【行、列、单元格】、详解pandas获取Dataframe元素值的几种方法、python数据分析模块:numpy、pandas全解等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存