pandas抽取行列数据的几种方法
作者:北木. 发布时间:2022-06-19 09:32:16
取行和列的几种常用方式:
data[ 列名 ]: 取单列或多列,不能用连续方式取,也不能用于取行。
data.列名: 只用于取单列,不能用于行。
data[ i:j ]: 用起始行下标(i)和终止行下标(j)取单行或者连续多行,不能用于列的选取。
data.loc[行名,列名]: 用对象的.loc[]方法实现各种取数据方式。
data.iloc[行下标,列下标]: 用对象的.iloc[]方法实现各种取数据方式。
首先生成一个DataFrame对象:
import pandas as pd
score = [[34,67,87],[68,98,58],[75,73,86],[94,59,81]]
name = ['小新','小红','小李']
course = ['语文','数学','英语','政治']
mydata = pd.DataFrame(data=score,columns=name,index=course)#指定行列名
print(mydata)
小新 小红 小李
语文 34 67 87
数学 68 98 58
英语 75 73 86
政治 94 59 81
1. 直接用列名抽取单列或多列 – data[列名]
print(mydata['小红']) # 输出是一个Series对象,而不是DataFrame对象
语文 67
数学 98
英语 73
政治 59
print(mydata[['小红']]) # 加了[],此时输出的是DataFrame对象
小红
语文 67
数学 98
英语 73
政治 59
print(mydata[['小红','小李']]) #选择两列,此时必须用[]将两列括起来
小红 小李
语文 67 87
数学 98 58
英语 73 86
政治 59 81
2. 用行所在矩阵索引抽取一个行或者连续多行数据
print(mydata[0:1]) #通过0:1选择了第0行
小新 小红 小李
语文 34 67 87
mydata[0:3] #通过0:3选择了第0,1,2三行
小新 小红 小李
语文 34 67 87
数学 68 98 58
英语 75 73 86
3. 用数据的“·”方式获取某一列数据
print(mydata.小红) #通过.小红选择了小红列,注意输出的是Series对象
语文 67
数学 98
英语 73
政治 59
4. panadas 中利用DataFrame对象的.loc[,]、.iloc[,]方法抽取数据
引例:
import pandas as pd
score = [[34,67,87],[68,98,58],[75,73,86],[94,59,81]]
name = ['小新','小红','小李']
course = ['语文','数学','英语','政治']
mydata1 = pd.DataFrame(data=score,columns=name,index=course) # 指定行名(index)和列名(columns)
print(mydata1)
mydata2 = pd.DataFrame(score) # 不指定行列名,默认使用0,1,2……
print(mydata2)
小明 小红 小李
语文 34 67 87
数学 68 98 58
英语 75 73 86
政治 94 59 81
0 1 2
0 34 67 87
1 68 98 58
2 75 73 86
3 94 59 81
DataFrame对象的.loc[]和.iloc[]方法都可用于抽取数据,区别是:
.loc[]: 以列名和行名作为参数。
.iloc[]: 以二维矩阵的位置指标(即0,1,2……)作为参数。
.loc[]语法:
有两个输入参数,第一个指定行名,第二个指定列名。当只有一个参数时,默认是行名(即抽取整行),所有列都选中。
.iloc[]语法:
有两个输入参数,第一个指定行位置,第二个指定列位置。当只有一个参数时,默认是行位置(即抽取整行),所有列都选中。
总结:
当需要选中所有行的某几列时,行参数可以省略,列参数需要指定,此时列参数前面必须带上“,:”,形如.loc[:,列参数],.iloc[:,列参数]。
两种方法当只指定一个输入参数时,都默是跟“行”相关,而“列”则全部被选中。如何行和列都需要指定时,中间用“逗号,”隔开,这非常重要,否则出错。
两个方法都接受两个参数,第一个是“行标签”或者“矩阵行号”,第二个是“列标签”或者“矩阵列号”。
学习链接:
Panadas 中利用DataFrame对象的.loc[,]、.iloc[,]方法抽取数据
pandas的DataFrame对象抽取“整列”或者“整行”数据
来源:https://blog.csdn.net/weixin_43283397/article/details/104263743


猜你喜欢
- 故障描述percona5.6,mysqldump全备份,导入备份数据时报错Duplicate entry 'hoc_log99-it
- 小编最近由于工作原因要用到python,一门新的知识需要接触,对于我来说难度还是很大的。python工程目录结构每次创建一个python工程
- 在多线程的使用时,为了线程的顺利进行,我们会使用函数来对某个线程进行暂停运行。在多线程中有两个函数可以实现sleep和wait,不过它们在使
- 前言 一直用ASP+ACCESS来编写网页和公司的内部应用系统,内部应用系统也就是大家说的OA吧,这个我也不知道,公司又叫它ERP,反正不管
- 前言过去公司都是用的5.7 系列的MySQL,随着8.0的发版,也想试着升级一下。遇到了两个小错误,记录在此。在开始之前,如果对MySQL8
- 有了Web框架和ORM框架,我们就可以开始装配App了。通常,一个Web App在运行时都需要读取配置文件,比如数据库的用户名、口令等,在不
- 今天将一个ACC的数据库转换成ms-sql以后发现在使用replace替换语句的时候出现: SQL中函数 replace 的参数 1 的数据
- 本文实例为大家分享了微信小程序实现列表下拉刷新上拉加载的具体代码,供大家参考,具体内容如下DEMO下载效果图原理利用微信小程序的onPull
- 目录一.简介二.特色三.flask规模化四. flask Blueprint总结一.简介Flask是一个使用Python编写的轻量级Web应
- select先说switch...case...switch...case... 很常用,且很好理解。其作用和if...else...一样。
- 背景图像滤波的作用简单来说就是将一副图像通过滤波器得到另一幅图像;明确一个概念,滤波器又被称为卷积核,滤波的过程又被称为卷积;实际上深度学习
- 视频观看视频Pygame模块之pygame.draw本文将主要介绍Pygame的draw模块,主要内容翻译自pygame的官方文档pygam
- 大家好,我是安果!最近在部署前端项目的时候,需要先将前端项目压缩包通过堡垒机上传到应用服务器的 /tmp 目录下,然后进入应用服务器中,使用
- 什么是分页查询分页查询就是把query到的结果集按页显示。比如一个结果集有1W行,每页按100条数据库。而你获取了第2页的结果集。为什么要分
- 最近几天了解了一下人脸识别,应用场景可以是图片标注,商品图和广告图中有没有模特,有几个模特,模特的性别,年龄,颜值,表情等数据的挖掘。基础的
- 首先要导入JDBC的jar包;接下来,代码:Class.forName(xxx.xx.xx)返回的是一个类Class.forName(xxx
- 我的理解为什么会用到python-docx,因为近段时间下载了大量网文,但格式都是html的,我个人习惯使用word处理文字,于是就想法设法
- 一、首先我们来填个坑支付验签失败这个问题折磨了我两天,官方文档比较含糊不清。各种百度下来的方法试过之后也不尽人意,最后发现问题是没有二次签名
- JavaScript的对象都是实例化了的,只可以使用而不能够创建继承于这些对象的新的子类. window对象为所有对象的Parent win
- 一.设置客户端网络实用工具点击“开始”-“程序”,在“Microsoft SQL Server”菜单中选择“客户端网络实用工具”。在“别名”