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 相关文章推荐
通过C++学习Python
Jan 20 Python
python根据给定文件返回文件名和扩展名的方法
Mar 27 Python
Python实现给qq邮箱发送邮件的方法
May 28 Python
python如何让类支持比较运算
Mar 20 Python
Python判断两个list是否是父子集关系的实例
May 04 Python
Selenium 模拟浏览器动态加载页面的实现方法
May 16 Python
python实现大转盘抽奖效果
Jan 22 Python
python爬取盘搜的有效链接实现代码
Jul 20 Python
Python 生成器,迭代,yield关键字,send()传参给yield语句操作示例
Oct 12 Python
python datetime时间格式的相互转换问题
Jun 11 Python
Django DRF认证组件流程实现原理详解
Aug 17 Python
Python操作CSV格式文件的方法大全
Jul 15 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
一个捕获函数输出的函数
2007/02/14 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
PHP跨平台获取服务器IP地址自定义函数分享
2014/12/29 PHP
对PHP PDO的一些认识小结
2015/01/23 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
TNC vs IO BO3 第一场2.13
2021/03/10 DOTA
高亮显示web页表格行的javascript代码
2010/11/19 Javascript
15条JavaScript最佳实践小结
2013/08/09 Javascript
js怎么覆盖原有方法实现重写
2014/09/04 Javascript
js构造函数、索引数组和属性的实现方式和使用
2014/11/16 Javascript
javascript原型继承工作原理和实例详解
2016/04/07 Javascript
基于JS实现EOS隐藏错误提示层代码
2016/04/25 Javascript
JavaScript DOM节点操作方法总结
2016/08/23 Javascript
javascript数据结构之串的概念与用法分析
2017/04/12 Javascript
bootstrap3中container与container_fluid外层容器的区别讲解
2017/12/04 Javascript
分析JavaScript数组操作难点
2017/12/18 Javascript
element ui里dialog关闭后清除验证条件方法
2018/02/26 Javascript
详解@Vue/Cli 3 Invalid Host header 错误解决办法
2019/01/02 Javascript
Nuxt 嵌套路由nuxt-child组件用法(父子页面组件的传值)
2020/11/05 Javascript
Python open读写文件实现脚本
2008/09/06 Python
python实现批量改文件名称的方法
2015/05/25 Python
pycharm远程调试openstack的图文教程
2017/11/21 Python
python,Django实现的淘宝客登录功能示例
2019/06/12 Python
css3媒体查询中device-width和width的区别详解
2020/03/27 HTML / CSS
提供世界各地便宜的机票:Sky-tours
2016/07/21 全球购物
饿了么订餐官网:外卖、网上订餐
2019/06/28 全球购物
最新的互联网创业计划书
2014/01/10 职场文书
中学教师自我鉴定
2014/02/07 职场文书
环保倡议书500字
2014/05/15 职场文书
数控机床专业自荐信
2014/05/19 职场文书
励志演讲稿200字
2014/08/21 职场文书
绿色小区申报材料
2014/08/22 职场文书
维护民族团结演讲稿
2014/08/27 职场文书
党员群众路线整改措施及今后努力方向
2014/10/28 职场文书
2014年管理人员工作总结
2014/12/01 职场文书
js中Map和Set的用法及区别实例详解
2022/02/15 Javascript