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执行子进程实现进程间通信的方法
Jun 02 Python
Python用UUID库生成唯一ID的方法示例
Dec 15 Python
利用python 更新ssh 远程代码 操作远程服务器的实现代码
Feb 08 Python
python psutil库安装教程
Mar 19 Python
python对列进行平移变换的方法(shift)
Jan 10 Python
Python检查 云备份进程是否正常运行代码实例
Aug 22 Python
Python pandas.DataFrame 找出有空值的行
Sep 09 Python
Django xadmin开启搜索功能的实现
Nov 15 Python
PyQt5中多线程模块QThread使用方法的实现
Jan 31 Python
使用Python实现批量ping操作方法
May 06 Python
Python带参数的装饰器运行原理解析
Jun 09 Python
使用Python的开发框架Brownie部署以太坊智能合约
May 28 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
声音就能俘获人心,蕾姆,是哪个漂亮小姐姐配音呢?
2020/03/03 日漫
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
PHP 截取字符串 分别适合GB2312和UTF8编码情况
2009/02/12 PHP
php简单获取目录列表的方法
2015/03/24 PHP
thinkphp如何获取客户端IP
2015/11/03 PHP
PHP框架laravel的.env文件配置教程
2017/06/07 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
用jquery实现自定义风格的滑动条实现代码
2011/04/26 Javascript
面向对象的Javascript之三(封装和信息隐藏)
2012/01/27 Javascript
javascript克隆对象深度介绍
2012/11/20 Javascript
js过滤特殊字符输入适合输入、粘贴、拖拽多种情况
2014/03/22 Javascript
Jquery 实现checkbox全选方法
2015/01/28 Javascript
javascript特殊日历控件分享
2016/03/07 Javascript
通过BootStrap-select插件 js jQuery控制select属性变化
2017/01/03 Javascript
详解vue-loader在项目中是如何配置的
2018/06/04 Javascript
解决Vue axios post请求,后台获取不到数据的问题方法
2018/08/11 Javascript
浅谈JS的原型和继承
2019/05/08 Javascript
Vee-validate 父组件获取子组件表单校验结果的实例代码
2019/05/20 Javascript
微信小程序自定义纯净模态框(弹出框)的实例代码
2020/03/09 Javascript
如何实现echarts markline标签名显示自己想要的
2020/07/20 Javascript
[00:57]辉夜杯战队访谈宣传片—VG
2015/12/25 DOTA
[44:33]EG vs Liquid 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
[01:03:27]NAVI vs EG 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[01:59]游戏“zheng”当时试玩会
2019/08/21 DOTA
Django与JS交互的示例代码
2017/08/23 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
解决Django数据库makemigrations有变化但是migrate时未变动问题
2018/05/30 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
Python HTMLTestRunner库安装过程解析
2020/05/25 Python
Python3爬虫ChromeDriver的安装实例
2021/02/06 Python
CSS3的常见transformation图形变化用法小结
2016/05/13 HTML / CSS
京东奢侈品:全球奢侈品牌
2018/03/17 全球购物
伦敦眼门票在线预订:London Eye
2018/05/31 全球购物
建筑设计师岗位职责
2013/11/18 职场文书
水务局局长岗位职责
2013/11/28 职场文书
节能环保标语
2014/06/12 职场文书