pandas抽取行列数据的几种方法


Posted in Python onDecember 13, 2020

取行和列的几种常用方式:

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[:,列参数]。

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

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

学习链接:

到此这篇关于pandas抽取行列数据的几种方法的文章就介绍到这了,更多相关pandas抽取行列数据内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Win8下python3.5.1安装教程
Jul 29 Python
python使用xlrd模块读取xlsx文件中的ip方法
Jan 11 Python
django 实现编写控制登录和访问权限控制的中间件方法
Jan 15 Python
Python Selenium 之关闭窗口close与quit的方法
Feb 13 Python
Python字符串逆序输出的实例讲解
Feb 16 Python
python快排算法详解
Mar 04 Python
Python Numpy 实现交换两行和两列的方法
Jun 26 Python
用vue.js组件模拟v-model指令实例方法
Jul 05 Python
python接口调用已训练好的caffe模型测试分类方法
Aug 26 Python
PyQT5 emit 和 connect的用法详解
Dec 13 Python
用Python开发app后端有优势吗
Jun 29 Python
python 装饰器的实际作用有哪些
Sep 07 Python
python3.9实现pyinstaller打包python文件成exe
Dec 13 #Python
Pandas中两个dataframe的交集和差集的示例代码
Dec 13 #Python
使用pandas实现筛选出指定列值所对应的行
Dec 13 #Python
Pandas DataFrame求差集的示例代码
Dec 13 #Python
pandas实现导出数据的四种方式
Dec 13 #Python
python绘图pyecharts+pandas的使用详解
Dec 13 #Python
Pandas对每个分组应用apply函数的实现
Dec 13 #Python
You might like
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
linux下为php添加curl扩展的方法
2011/07/29 PHP
PHP实现获取文件后缀名的几种常用方法
2015/08/08 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
Jquery 获得服务器控件值的方法小结
2010/05/11 Javascript
简单的JavaScript互斥锁分享
2014/02/02 Javascript
ExtJS4 表格的嵌套 rowExpander应用
2014/05/02 Javascript
javascript去除字符串中所有标点符号和提取纯文本的正则
2014/06/07 Javascript
JavaScript ES2019中的8个新特性详解
2019/02/20 Javascript
详解vue使用插槽分发内容slot的用法
2019/03/28 Javascript
微信小程序 扭蛋抽奖机css3动画实现详解
2019/07/19 Javascript
解决Vue.js应用回退或刷新界面时提示用户保存修改问题
2019/11/24 Javascript
vue实现全屏滚动效果(非fullpage.js)
2020/03/07 Javascript
django简单的前后端分离的数据传输实例 axios
2020/05/18 Javascript
python改变日志(logging)存放位置的示例
2014/03/27 Python
Windows8下安装Python的BeautifulSoup
2015/01/22 Python
使用相同的Apache实例来运行Django和Media文件
2015/07/22 Python
Python实现的朴素贝叶斯分类器示例
2018/01/06 Python
Flask实现图片的上传、下载及展示示例代码
2018/08/03 Python
python由已知数组快速生成新数组的方法
2020/04/08 Python
Python中用xlwt制作表格实例讲解
2020/11/05 Python
从Pytorch模型pth文件中读取参数成numpy矩阵的操作
2021/03/04 Python
CSS3 三维变形实现立体方块特效源码
2016/12/15 HTML / CSS
编码实现字符串转整型的函数
2012/06/02 面试题
方正Java笔试题
2014/07/03 面试题
总经理秘书的岗位职责
2013/12/27 职场文书
化学专业毕业生求职信
2014/07/28 职场文书
合作协议书范本
2014/10/25 职场文书
2014年团委工作总结
2014/11/13 职场文书
考试作弊检讨
2015/01/27 职场文书
2015年精神文明建设工作总结
2015/04/21 职场文书
社区活动总结范文
2015/05/07 职场文书
2015年大学团支部工作总结
2015/05/13 职场文书
如何写一份具有法律效力的借款协议书?
2019/07/02 职场文书
Windows Server 2012 修改远程默认端口3389的方法
2022/04/28 Servers
mysql sock文件存储了什么信息
2022/07/15 MySQL