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中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
Python使用urllib2模块实现断点续传下载的方法
Jun 17 Python
Python使用pymongo模块操作MongoDB的方法示例
Jul 20 Python
Python定时发送消息的脚本:每天跟你女朋友说晚安
Oct 21 Python
对python实现二维函数高次拟合的示例详解
Dec 29 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 Python
python中sort和sorted排序的实例方法
Aug 26 Python
如何基于python生成list的所有的子集
Nov 11 Python
使用python操作lmdb对数据读取的实例
Dec 11 Python
Python Selenium库的基本使用教程
Jan 04 Python
Pytorch实现图像识别之数字识别(附详细注释)
May 11 Python
python四个坐标点对图片区域最小外接矩形进行裁剪
Jun 04 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中的print_r 与 var_dump 输出数组
2016/06/13 PHP
php 基础函数
2017/02/10 PHP
ThinkPHP5.1框架数据库链接和增删改查操作示例
2019/08/03 PHP
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
js父窗口关闭时子窗口随之关闭完美解决方案
2014/04/29 Javascript
node.js中的buffer.write方法使用说明
2014/12/10 Javascript
微信小程序 教程之注册页面
2016/10/17 Javascript
nodejs 终端打印进度条实例代码
2017/04/22 NodeJs
将angular-ui的分页组件封装成指令的方法详解
2017/05/10 Javascript
bootstrap daterangepicker汉化以及扩展功能
2017/06/15 Javascript
解决微信二次分享不显示摘要和图片的问题
2017/08/18 Javascript
基于vue-cli搭建多模块且各模块独立打包的项目
2019/06/12 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
Vue.js中provide/inject实现响应式数据更新的方法示例
2019/10/16 Javascript
vue+element树组件 实现树懒加载的过程详解
2019/10/21 Javascript
VUE中setTimeout和setInterval自动销毁案例
2020/09/07 Javascript
Python语法快速入门指南
2015/10/12 Python
Python WXPY实现微信监控报警功能的代码
2017/10/20 Python
Python实现的人工神经网络算法示例【基于反向传播算法】
2017/11/11 Python
Python实现获取邮箱内容并解析的方法示例
2018/06/16 Python
Python类的继承用法示例
2019/01/31 Python
Python利用pandas处理Excel数据的应用详解
2019/06/18 Python
使用APScheduler3.0.1 实现定时任务的方法
2019/07/22 Python
django admin.py 外键,反向查询的实例
2019/07/26 Python
Python爬取视频(其实是一篇福利)过程解析
2019/08/01 Python
深入了解Python enumerate和zip
2020/07/16 Python
Pyinstaller打包Scrapy项目的实现步骤
2020/09/22 Python
Python中Selenium模块的使用详解
2020/10/09 Python
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
全球速卖通法国在线交易平台:AliExpress法国
2017/07/07 全球购物
应届大学生求职的自我评价
2013/11/17 职场文书
社会实践活动总结范文
2014/07/03 职场文书
初中生散播谣言检讨书
2014/11/17 职场文书
2014年优秀党员材料
2014/12/18 职场文书
go开发alertmanger实现钉钉报警
2021/07/16 Golang
http通过StreamingHttpResponse完成连续的数据传输长链接方式
2022/02/12 Python