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绘制人人网好友关系图示例
Apr 01 Python
python基础教程之序列详解
Aug 29 Python
python实现定时播放mp3
Mar 29 Python
python操作字典类型的常用方法(推荐)
May 16 Python
Python 实现选择排序的算法步骤
Apr 22 Python
Python Unittest根据不同测试环境跳过用例的方法
Dec 16 Python
详解python websocket获取实时数据的几种常见链接方式
Jul 01 Python
python opencv minAreaRect 生成最小外接矩形的方法
Jul 01 Python
python3.7 sys模块的具体使用
Jul 22 Python
Pytorch训练过程出现nan的解决方式
Jan 02 Python
python访问hdfs的操作
Jun 06 Python
利用Python将list列表写入文件并读取的方法汇总
Mar 25 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中判断变量为空的几种方法小结
2013/11/12 PHP
通过curl模拟post和get方式提交的表单类
2014/04/23 PHP
apache中为php 设置虚拟目录
2014/12/17 PHP
javascript背投广告代码的完善
2008/04/08 Javascript
formvalidator验证插件中有关ajax验证问题
2013/01/04 Javascript
jQuery extend 的简单实例
2013/09/18 Javascript
如何让浏览器支持jquery ajax load 前进、后退功能
2014/06/12 Javascript
Javascript代码实现仿实例化类
2015/04/03 Javascript
jquery实现Ctrl+Enter提交表单的方法
2015/07/21 Javascript
JS实现自动变化的导航菜单效果代码
2015/09/09 Javascript
javascript跨域的方法汇总
2015/10/23 Javascript
用canvas 实现个图片三角化(LOW POLY)效果
2016/02/18 Javascript
jQuery插件fullPage.js实现全屏滚动效果
2016/12/02 Javascript
jQuery插件FusionWidgets实现的AngularGauge图效果示例【附demo源码】
2017/03/23 jQuery
整理关于Bootstrap导航的慕课笔记
2017/03/29 Javascript
Vue结合SignalR实现前后端实时消息同步
2017/09/19 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
vue 2.1.3 实时显示当前时间,每秒更新的方法
2018/09/16 Javascript
inquirer.js一个用户与命令行交互的工具详解
2019/05/18 Javascript
微信小程序的注册页面包含倒计时验证码、获取用户信息
2019/05/22 Javascript
微信小程序移动拖拽视图-movable-view实例详解
2019/08/17 Javascript
python冒泡排序简单实现方法
2015/07/09 Python
Python编程pygame模块实现移动的小车示例代码
2018/01/03 Python
Python中pow()和math.pow()函数用法示例
2018/02/11 Python
解决python flask中config配置管理的问题
2019/07/26 Python
详解python statistics模块及函数用法
2019/10/27 Python
python中的列表和元组区别分析
2020/12/30 Python
python 列表推导和生成器表达式的使用
2021/02/01 Python
HTML高亮关键字的实现代码
2018/10/22 HTML / CSS
房产公证书范本
2014/04/10 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
《得道多助,失道寡助》教学反思
2014/04/19 职场文书
机械专业应届毕业生自荐书
2014/06/12 职场文书
金融管理专业求职信
2014/07/10 职场文书
奔腾年代观后感
2015/06/09 职场文书