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 29 Python
在Python的Django框架中编写错误提示页面
Jul 22 Python
Python中关键字nonlocal和global的声明与解析
Mar 12 Python
Python语言描述随机梯度下降法
Jan 04 Python
python实现对指定字符串补足固定长度倍数截断输出的方法
Nov 15 Python
pyenv虚拟环境管理python多版本和软件库的方法
Dec 26 Python
python实现密码强度校验
Mar 18 Python
django项目中新增app的2种实现方法
Apr 01 Python
使用Keras实现简单线性回归模型操作
Jun 12 Python
Python中Selenium库使用教程详解
Jul 23 Python
Django权限控制的使用
Jan 07 Python
教你如何使用Python Tkinter库制作记事本
Jun 10 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 缓冲的免费实现方法
2006/10/09 PHP
实现了一个PHP5的getter/setter基类的代码
2007/02/25 PHP
php ZipArchive压缩函数详解实例
2013/11/06 PHP
PHP使用PDO连接ACCESS数据库
2015/03/05 PHP
网页设计常用的一些技巧
2006/12/22 Javascript
jQuery 1.0.4 - New Wave Javascript(js源文件)
2007/01/15 Javascript
JS添加删除一组文本框并对输入信息加以验证判断其正确性
2013/04/11 Javascript
jQuery遍历Table应用示例
2014/04/09 Javascript
javascript判断是否按回车键并解决浏览器之间的差异
2014/05/13 Javascript
如何编写高质量JS代码(续)
2015/02/25 Javascript
JS通过Cookie判断页面是否为首次打开
2016/02/05 Javascript
Javascript 事件冒泡机制详细介绍
2016/10/10 Javascript
vue 实现复制内容到粘贴板clipboard的方法
2018/03/17 Javascript
小程序图片剪裁加旋转的示例代码
2018/07/10 Javascript
Vue入门之数量加减运算操作示例
2018/12/11 Javascript
微信小程序实现banner图轮播效果
2020/06/28 Javascript
轻松解决JavaScript定时器越走越快的问题
2019/05/13 Javascript
详解Vue 如何监听Array的变化
2019/06/06 Javascript
Vue的全局过滤器和私有过滤器的实现
2020/04/20 Javascript
JQuery+drag.js上传图片并且实现图片拖曳
2020/11/18 jQuery
Python抓取Discuz!用户名脚本代码
2013/12/30 Python
Python文件处理
2016/02/29 Python
Python中的条件判断语句与循环语句用法小结
2016/03/21 Python
Python 自动化表单提交实例代码
2017/06/08 Python
python 实现检验33品种数据是否是正态分布
2019/12/09 Python
numba提升python运行速度的实例方法
2021/01/25 Python
css3 flex实现div内容水平垂直居中的几种方法
2020/03/27 HTML / CSS
Java语言程序设计测试题判断题部分
2013/01/06 面试题
编辑找工作求职信范文
2013/12/16 职场文书
就职演讲稿范文
2014/05/19 职场文书
电子专业求职信
2014/06/19 职场文书
开展党的群众路线教育实践活动情况汇报
2014/11/05 职场文书
2014年精神文明建设工作总结
2014/11/19 职场文书
护士实习自荐信
2015/03/06 职场文书
优质护理服务心得体会
2016/01/22 职场文书
大学生军训心得体会5篇
2019/08/15 职场文书