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 ORM框架SQLAlchemy学习笔记之映射类使用实例和Session会话介绍
Jun 10 Python
Python的__builtin__模块中的一些要点知识
May 02 Python
Flask框架中密码的加盐哈希加密和验证功能的用法详解
Jun 07 Python
Python内置模块hashlib、hmac与uuid用法分析
Feb 12 Python
Python中base64与xml取值结合问题
Dec 22 Python
将labelme格式数据转化为标准的coco数据集格式方式
Feb 17 Python
django-csrf使用和禁用方式
Mar 13 Python
PyQt中使用QtSql连接MySql数据库的方法
Jul 28 Python
区分python中的进程与线程
Aug 13 Python
PyCharm 2020.2下配置Anaconda环境的方法步骤
Sep 23 Python
python单元测试之pytest的使用
Jun 07 Python
Pygame Event事件模块的详细示例
Nov 17 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来限制每个ip每天浏览页面数量的实现思路
2015/02/24 PHP
thinkphp5.1框架实现格式化mysql时间戳为日期的方式小结
2019/10/10 PHP
Javascript面向对象之四 继承
2011/02/08 Javascript
jQuery实现类似淘宝网图片放大效果的方法
2015/07/08 Javascript
AngularJS使用angular-formly进行表单验证
2015/12/27 Javascript
jQuery实现验证年龄简单思路
2016/02/24 Javascript
Json解析的方法小结
2016/06/22 Javascript
微信小程序 SocketIO 实例讲解
2016/10/13 Javascript
JavaScript调试的多个必备小Tips
2017/01/15 Javascript
原生js实现简单的Ripple按钮实例代码
2017/03/24 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
Vue.js学习笔记之修饰符详解
2017/07/25 Javascript
基于原生js运动方式关键点的总结(推荐)
2017/10/01 Javascript
vue二级菜单导航点击选中事件的方法
2018/09/12 Javascript
Vue传参一箩筐(页面、组件)
2019/04/04 Javascript
JavaScript中将值转换为字符串的五种方法总结
2019/06/06 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
Nuxt 项目性能优化调研分析
2020/11/07 Javascript
Python导出DBF文件到Excel的方法
2015/07/25 Python
Python中遍历字典过程中更改元素导致异常的解决方法
2016/05/12 Python
Python中的is和==比较两个对象的两种方法
2017/09/06 Python
windows下python安装pip图文教程
2018/05/25 Python
Python爬取qq空间说说的实例代码
2018/08/17 Python
Python实现截取PDF文件中的几页代码实例
2019/03/11 Python
Python 日志logging模块用法简单示例
2019/10/18 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
html5 Canvas画图教程(2)—画直线与设置线条的样式如颜色/端点/交汇点
2013/01/09 HTML / CSS
Yankee Candle官网:美国最畅销蜡烛品牌之一
2020/01/05 全球购物
自我鉴定注意事项
2014/01/19 职场文书
幼儿园中秋节活动方案2013
2014/01/29 职场文书
绩效考核实施方案
2014/03/18 职场文书
小学生评语大全
2014/04/18 职场文书
道路运输企业安全生产责任书
2014/07/28 职场文书
民主生活会对照检查材料范文
2014/10/01 职场文书
2021年pycharm的最新安装教程及基本使用图文详解
2021/04/03 Python
解析python中的jsonpath 提取器
2022/01/18 Python