Pandas删除数据的几种情况(小结)


Posted in Python onJune 21, 2019

开始之前,pandas中DataFrame删除对象可能存在几种情况

1、删除具体列
2、删除具体行
3、删除包含某些数值的行或者列
4、删除包含某些字符、文字的行或者列

本文就针对这四种情况探讨一下如何操作。

数据准备

模拟了一份股票交割的记录。

In [1]: import pandas as pd

In [2]: data = {
  ...:   '证券名称' : ['格力电器','视觉中国','成都银行','中国联通','格力电器','视觉中国','成都银行','中国联通'],
  ...:   '摘要': ['证券买入','证券买入','证券买入','证券买入','证券卖出','证券卖出','证券卖出','证券卖出'],
  ...:   '成交数量' : [500,1000,1500,2000,500,500,1000,1500],
  ...:   '成交金额' : [-5000,-10000,-15000,-20000,5500,5500,11000,15000]
  ...: }
  ...: 

In [3]: df = pd.DataFrame(data, index = ['2018-2-1','2018-2-1','2018-2-1','2018-2-1','2018-2-2','2018-2-2','2018-2-2','2018-2-3'])

In [4]: df
Out[4]: 
     成交数量  成交金额  摘要 证券名称
2018-2-1  500 -5000 证券买入 格力电器
2018-2-1 1000 -10000 证券买入 视觉中国
2018-2-1 1500 -15000 证券买入 成都银行
2018-2-1 2000 -20000 证券买入 中国联通
2018-2-2  500  5500 证券卖出 格力电器
2018-2-2  500  5500 证券卖出 视觉中国
2018-2-2 1000 11000 证券卖出 成都银行
2018-2-3 1500 15000 证券卖出 中国联通

删除具体列

In [5]: df.drop('成交数量',axis=1)
Out[5]: 
      成交金额  摘要 证券名称
2018-2-1 -5000 证券买入 格力电器
2018-2-1 -10000 证券买入 视觉中国
2018-2-1 -15000 证券买入 成都银行
2018-2-1 -20000 证券买入 中国联通
2018-2-2  5500 证券卖出 格力电器
2018-2-2  5500 证券卖出 视觉中国
2018-2-2 11000 证券卖出 成都银行
2018-2-3 15000 证券卖出 中国联通

删除具体行

In [6]: df.drop('2018-2-3')
Out[6]: 
     成交数量  成交金额  摘要 证券名称
2018-2-1  500 -5000 证券买入 格力电器
2018-2-1 1000 -10000 证券买入 视觉中国
2018-2-1 1500 -15000 证券买入 成都银行
2018-2-1 2000 -20000 证券买入 中国联通
2018-2-2  500  5500 证券卖出 格力电器
2018-2-2  500  5500 证券卖出 视觉中国
2018-2-2 1000 11000 证券卖出 成都银行

也可以根据行号删除记录,比如删除第三行

In [22]: df.drop(df.index[7])
Out[22]: 
     成交数量  成交金额  摘要 证券名称
2018-2-1  500 -5000 证券买入 格力电器
2018-2-1 1000 -10000 证券买入 视觉中国
2018-2-1 1500 -15000 证券买入 成都银行
2018-2-1 2000 -20000 证券买入 中国联通
2018-2-2  500  5500 证券卖出 格力电器
2018-2-2  500  5500 证券卖出 视觉中国
2018-2-2 1000 11000 证券卖出 成都银行

注意,这个办法其实不是按照行号删除,而是按照索引删除。如果index为3,则会将前4条记录都删除。这个方法支持一个范围,以及用负数表示从末尾删除。

删除特定数值的行(删除成交金额小于10000)

In [7]: df[ df['成交金额'] > 10000]
Out[7]: 
     成交数量  成交金额  摘要 证券名称
2018-2-2 1000 11000 证券卖出 成都银行
2018-2-3 1500 15000 证券卖出 中国联通

本例其实是筛选,如果需要保留,可以将筛选后的对象赋值给自己即可。

删除某列包含特殊字符的行

In [11]: df[ ~ df['证券名称'].str.contains('联通') ]
Out[11]: 
     成交数量  成交金额  摘要 证券名称
2018-2-1  500 -5000 证券买入 格力电器
2018-2-1 1000 -10000 证券买入 视觉中国
2018-2-1 1500 -15000 证券买入 成都银行
2018-2-2  500  5500 证券卖出 格力电器
2018-2-2  500  5500 证券卖出 视觉中国
2018-2-2 1000 11000 证券卖出 成都银行

如果想取包含某些字符的记录,可以去掉~

In [12]: df[ df['证券名称'].str.contains('联通') ]
Out[12]: 
     成交数量  成交金额  摘要 证券名称
2018-2-1 2000 -20000 证券买入 中国联通
2018-2-3 1500 15000 证券卖出 中国联通

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python生成随机密码
Mar 10 Python
python判断一个集合是否包含了另外一个集合中所有项的方法
Jun 30 Python
使用python调用zxing库生成二维码图片详解
Jan 10 Python
pandas对指定列进行填充的方法
Apr 11 Python
python的turtle库使用详解
May 10 Python
python异常触发及自定义异常类解析
Aug 06 Python
Python Django 命名空间模式的实现
Aug 09 Python
Python for循环与getitem的关系详解
Jan 02 Python
python解析xml文件方式(解析、更新、写入)
Mar 05 Python
深入了解Python 方法之类方法 & 静态方法
Aug 17 Python
Python实现粒子群算法的示例
Feb 14 Python
python正则表达式re.search()的基本使用教程
May 21 Python
pandas.read_csv参数详解(小结)
Jun 21 #Python
pandas 数据结构之Series的使用方法
Jun 21 #Python
解决pyecharts在jupyter notebook中使用报错问题
Apr 23 #Python
用scikit-learn和pandas学习线性回归的方法
Jun 21 #Python
在pyqt5中QLineEdit里面的内容回车发送的实例
Jun 21 #Python
十分钟搞定pandas(入门教程)
Jun 21 #Python
pyqt5 QProgressBar清空进度条的实例
Jun 21 #Python
You might like
PHP simple_html_dom.php+正则 采集文章代码
2009/12/24 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
Laravel登录失败次数限制的实现方法
2020/08/26 PHP
线路分流自动跳转代码;希望对大家有用!
2006/12/02 Javascript
JavaScript日历实现代码
2010/09/12 Javascript
jquery对表单操作2
2011/04/06 Javascript
jQuery UI Dialog 创建友好的弹出对话框实现代码
2012/04/12 Javascript
javaScript(JS)替换节点实现思路介绍
2013/04/17 Javascript
Vue学习笔记进阶篇之单元素过度
2017/07/19 Javascript
js数组实现权重概率分配
2017/09/12 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
vue操作下拉选择器获取选择的数据的id方法
2018/08/24 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
彻底揭秘keep-alive原理(小结)
2019/05/05 Javascript
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
vue实现简单学生信息管理
2020/05/30 Javascript
在Python的Flask框架下使用sqlalchemy库的简单教程
2015/04/09 Python
python使用threading获取线程函数返回值的实现方法
2017/11/15 Python
对pandas里的loc并列条件索引的实例讲解
2018/11/15 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
Python:Numpy 求平均向量的实例
2019/06/29 Python
Python编译成.so文件进行加密后调用的实现
2019/12/23 Python
浅析Python 条件控制语句
2020/07/15 Python
印度首选时尚目的地:Reliance Trends
2018/01/17 全球购物
阿根廷旅游网站:almundo阿根廷
2018/02/12 全球购物
Carter’s OshKosh加拿大:购买婴幼儿服装和童装
2018/11/27 全球购物
求职自荐书范文
2013/12/04 职场文书
个人社会实践自我鉴定
2014/03/24 职场文书
初二学习计划书范文
2014/04/27 职场文书
假面舞会策划方案
2014/05/29 职场文书
专题组织生活会方案
2014/06/15 职场文书
学校党的群众路线教育实践活动对照检查材料
2014/09/24 职场文书
教育合作协议范本
2014/10/17 职场文书
唐山大地震观后感
2015/06/05 职场文书
为什么MySQL不建议使用SELECT *
2022/04/03 MySQL