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通过线程实现定时器timer的方法
Mar 16 Python
Python二分查找详解
Sep 13 Python
Python 的描述符 descriptor详解
Feb 27 Python
python微信跳一跳系列之自动计算跳一跳距离
Feb 26 Python
简单谈谈python基本数据类型
Sep 26 Python
APIStar:一个专为Python3设计的API框架
Sep 26 Python
python批量赋值操作实例
Oct 22 Python
Python考拉兹猜想输出序列代码实践
Jul 05 Python
Laravel框架表单验证格式化输出的方法
Sep 25 Python
python 单线程和异步协程工作方式解析
Sep 28 Python
基于Python实现船舶的MMSI的获取(推荐)
Oct 21 Python
ansible-playbook实现自动部署KVM及安装python3的详细教程
May 11 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漏洞小结
2012/02/05 PHP
php Calender(日历)代码分享
2014/01/03 PHP
php获取给定日期相差天数的方法分析
2017/02/20 PHP
Laravel使用Queue队列的技巧汇总
2019/09/02 PHP
laravel通过a标签从视图向控制器实现传值
2019/10/15 PHP
javascript之通用简单的table选项卡实现(二)
2010/05/09 Javascript
Javascript 设计模式(二) 闭包
2010/05/26 Javascript
Javascript和Java获取各种form表单信息的简单实例
2014/02/14 Javascript
js控制TR的显示隐藏
2016/03/04 Javascript
浅谈javascript:两种注释,声明变量,定义函数
2016/09/29 Javascript
js控制一个按钮是否可点击(可使用)disabled的实例
2017/02/14 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
Vue实现一个返回顶部backToTop组件
2017/07/25 Javascript
使用classList来实现两个按钮样式的切换方法
2018/01/24 Javascript
理理Vue细节(推荐)
2019/04/16 Javascript
实例详解vue中的$root和$parent
2019/04/29 Javascript
详解在Vue.js编写更好的v-for循环的6种技巧
2020/04/14 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
使用django-suit为django 1.7 admin后台添加模板
2014/11/18 Python
python面向对象_详谈类的继承与方法的重载
2017/06/07 Python
python使用__slots__让你的代码更加节省内存
2018/09/05 Python
python pyinstaller打包exe报错的解决方法
2019/11/02 Python
Python常用模块logging——日志输出功能(示例代码)
2019/11/20 Python
对Keras中predict()方法和predict_classes()方法的区别说明
2020/06/09 Python
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
智能钱包:Ekster
2019/11/21 全球购物
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
幼儿园毕业园长感言
2014/02/24 职场文书
装修协议书范本
2014/04/21 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
安全生产月标语
2014/10/07 职场文书
市委常委会班子党的群众路线教育实践活动整改方案
2014/10/25 职场文书
学校百日安全活动总结
2015/05/07 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
Golang日志包的使用
2022/04/20 Golang
阿里云国际版 使用Nginx作为HTTPS转发代理服务器
2022/05/11 Servers