pandas数据处理基础之筛选指定行或者指定列的数据


Posted in Python onMay 03, 2018

pandas主要的两个数据结构是:series(相当于一行或一列数据机构)和DataFrame(相当于多行多列的一个表格数据机构)。

本文为了方便理解会与excel或者sql操作行或列来进行联想类比

1.重新索引:reindex和ix

上一篇中介绍过数据读取后默认的行索引是0,1,2,3...这样的顺序号。列索引相当于字段名(即第一行数据),这里重新索引意思就是可以将默认的索引重新修改成自己想要的样子。

1.1 Series

比方说:data=Series([4,5,6],index=['a','b','c']),行索引为a,b,c。

我们用data.reindex(['a','c','d','e'])修改索引后则输出:

pandas数据处理基础之筛选指定行或者指定列的数据

可以理解成我们用reindex设了索引后,根据索引去原来data里面匹配对应的值,没匹配上的就是NaN。

1.2 DataFrame

(1)行索引修改:DataFrame行索引同Series

(2)列索引修改:列索引用reindex(columns=['m1','m2','m3']),用参数columns来指定对列索引进行修改。修改逻辑类似行索引,也是相当于用新列索引去匹配原来的数据,没匹配上的置NaN

例:

pandas数据处理基础之筛选指定行或者指定列的数据

(3)同时对行和列索引进行修改可以用

pandas数据处理基础之筛选指定行或者指定列的数据

2.丢弃指定轴上的列(通俗的说法就是删除行或者列):drop

通过索引进行选择删除哪一行或者哪一列

data.drop(['a','c']) 相当于delete table a where xid='a' or xid='c'

data.drop('m1',axis=1)相当于delete table a where yid='m1'

3.选取和过滤(通俗的说就是sql中按照条件筛选查询)

python中因为有行列索引,在做数据的筛选会比较方便

3.1 Series

(1)按照行索引进行选择如

pandas数据处理基础之筛选指定行或者指定列的数据

obj['b']相当于select * from tb where xid='b'obj['b','a','c']相当于select * from tb where xid in ('a','b','c'),且结果按照b ,a ,c 的顺序排列后进行展示,这是与sql的区别obj[0:1]和obj['a':'b']的区别如下:

#前者是不包含末端,后者是包含了末端

pandas数据处理基础之筛选指定行或者指定列的数据

(2)按照值的大小进行筛选obj[obj>-0.6]相当于在obj数据中找出值比-0.6大的记录进行展示

pandas数据处理基础之筛选指定行或者指定列的数据

3.2 DataFrame

(1)选择单行用ix或者xs:

如筛选索引为b的那条行记录用以下三种方式

pandas数据处理基础之筛选指定行或者指定列的数据

(2)选择多行:

筛选索引为a,b的两条行记录的方式

pandas数据处理基础之筛选指定行或者指定列的数据

#以上不能直接写成data[['a','b']]

data[0:2]表示从第一行到第二行的记录。第一行默认从0开始数,不包含末端的2。

(3)选择单列

筛选m1列的所有行记录数据

pandas数据处理基础之筛选指定行或者指定列的数据

(4)选择多列

筛选m1,m3两个列,所有行记录的数据

pandas数据处理基础之筛选指定行或者指定列的数据

ix[:,['m1','m2']]前面的:表示所有的行都筛选进来。

(5)根据值的大小条件筛选行或者列

如筛选出某一列值大于4的所有记录相当于select * from tb where 列名>4

pandas数据处理基础之筛选指定行或者指定列的数据

(6)如果筛选某列值大于4的所有记录,且只需展示部分列的情况时

pandas数据处理基础之筛选指定行或者指定列的数据

行用条件进行筛选,列用[0,2]筛选第一列和第三列的数据

总结

以上所述是小编给大家介绍的pandas数据处理基础之筛选指定行或者指定列的数据,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python SQLAlchemy基本操作和常用技巧(包含大量实例,非常好)
May 06 Python
Python的time模块中的常用方法整理
Jun 18 Python
Python科学计算之Pandas详解
Jan 15 Python
Python基于hashlib模块的文件MD5一致性加密验证示例
Feb 10 Python
TensorFlow实现MLP多层感知机模型
Mar 09 Python
Django框架实现的简单分页功能示例
Dec 04 Python
Python常用模块logging——日志输出功能(示例代码)
Nov 20 Python
浅谈python之自动化运维(Paramiko)
Jan 31 Python
python为Django项目上的每个应用程序创建不同的自定义404页面(最佳答案)
Mar 09 Python
python调用百度API实现人脸识别
Nov 17 Python
Python离线安装各种库及pip的方法
Nov 28 Python
python实现的人脸识别打卡系统
May 08 Python
Python爬虫实现全国失信被执行人名单查询功能示例
May 03 #Python
Python 解决中文写入Excel时抛异常的问题
May 03 #Python
python 将数据保存为excel的xls格式(实例讲解)
May 03 #Python
python更改已存在excel文件的方法
May 03 #Python
python写入已存在的excel数据实例
May 03 #Python
Python实现输出某区间范围内全部素数的方法
May 02 #Python
使用Python通过win32 COM打开Excel并添加Sheet的方法
May 02 #Python
You might like
一个比较简单的PHP 分页分组类
2009/12/10 PHP
两千行代码的PHP学习笔记汇总
2014/10/05 PHP
php 如何禁用eval() 函数实例详解
2016/12/01 PHP
Laravel框架路由管理简单示例
2019/05/07 PHP
laravel实现上传图片的两种方式小结
2019/10/12 PHP
php多进程并发编程防止出现僵尸进程的方法分析
2020/02/28 PHP
PHP7 弃用功能
2021/03/09 PHP
基于jquery的时间段实现代码
2012/08/02 Javascript
jQuery登陆判断简单实现代码
2013/04/21 Javascript
js获取checkbox复选框选中的选项实例
2014/08/24 Javascript
jQuery事件绑定方法学习总结(推荐)
2016/11/21 Javascript
js实现开启密码大写提示
2016/12/21 Javascript
Vue编写多地区选择组件
2017/08/21 Javascript
使用 Javascript 实现浏览器推送提醒功能的示例
2017/11/03 Javascript
还不懂递归?读完这篇文章保证你会懂
2018/07/29 Javascript
详解angularjs4部署文件过大解决过程
2018/12/05 Javascript
vue基础之使用get、post、jsonp实现交互功能示例
2019/03/12 Javascript
使用vue-cli4.0快速搭建一个项目的方法步骤
2019/12/04 Javascript
Vue实现星级评价效果实例详解
2019/12/30 Javascript
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
python实现kNN算法
2017/12/20 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
在pycharm中使用git版本管理以及同步github的方法
2019/01/16 Python
利用Python实现kNN算法的代码
2019/08/16 Python
python基于TCP实现的文件下载器功能案例
2019/12/10 Python
毕业设计计划书
2014/01/09 职场文书
关于母亲节的感言
2014/02/04 职场文书
大学生励志演讲稿
2014/04/25 职场文书
餐饮投资计划书
2014/04/25 职场文书
篝火晚会策划方案
2014/05/16 职场文书
初中信息技术教学计划
2015/01/22 职场文书
幼儿教师小班个人总结
2015/02/05 职场文书
李强感恩观后感
2015/06/17 职场文书
MySQL中InnoDB存储引擎的锁的基本使用教程
2021/05/26 MySQL
关于React Native 无法链接模拟器的问题
2021/06/21 Javascript
Redis主从复制操作和配置详情
2022/09/23 Redis