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 28 Python
python 调用win32pai 操作cmd的方法
May 28 Python
Python Socket实现简单TCP Server/client功能示例
Aug 05 Python
python使用threading获取线程函数返回值的实现方法
Nov 15 Python
Python wxPython库Core组件BoxSizer用法示例
Sep 03 Python
python实现创建新列表和新字典,并使元素及键值对全部变成小写
Jan 15 Python
python实现在函数图像上添加文字和标注的方法
Jul 08 Python
python使用rsa非对称加密过程解析
Dec 28 Python
python脚本监控logstash进程并邮件告警实例
Apr 28 Python
python 解决mysql where in 对列表(list,,array)问题
Jun 06 Python
Django多个app urls配置代码实例
Nov 26 Python
Python爬虫开发与项目实战
Dec 16 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
德生PL990的分析评价
2021/03/02 无线电
让你的网站首页自动选择语言转跳
2006/12/06 PHP
php empty()与isset()区别的详细介绍
2013/06/17 PHP
php函数间的参数传递(值传递/引用传递)
2013/09/23 PHP
php编写简单的文章发布程序
2015/06/18 PHP
浅析php中array_map和array_walk的使用对比
2016/11/20 PHP
Jquery 类网页微信二维码图块滚动效果具体实现
2013/10/14 Javascript
JQuery验证jsp页面属性是否为空(实例代码)
2013/11/08 Javascript
javascript调试之DOM断点调试法使用技巧分享
2014/04/15 Javascript
使用jQuery.wechat构建微信WEB应用
2014/10/09 Javascript
JS交换变量的方法
2015/01/21 Javascript
JavaScript之数组(Array)详解
2015/04/01 Javascript
JQuery Mobile实现导航栏和页脚
2016/03/09 Javascript
基于javascript实现文字无缝滚动效果
2016/03/22 Javascript
AngularJS中如何使用echart插件示例详解
2016/10/26 Javascript
jQuery 操作 HTML 元素和属性的方法
2018/11/12 jQuery
vue列表单项展开收缩功能之this.$refs的详解
2019/05/05 Javascript
[02:49]2014DOTA2电竞也是体育项目! 势要把荣誉带回中国!
2014/07/20 DOTA
python matplotlib坐标轴设置的方法
2017/12/05 Python
python实现求最长回文子串长度
2018/01/22 Python
Python编程实现的简单神经网络算法示例
2018/01/26 Python
python实现堆和索引堆的代码示例
2018/03/19 Python
Django框架登录加上验证码校验实现验证功能示例
2019/05/23 Python
python 批量解压压缩文件的实例代码
2019/06/27 Python
python 调用Google翻译接口的方法
2020/12/09 Python
Python环境搭建过程从安装到Hello World
2021/02/05 Python
Canvas 像素处理之改变透明度的实现代码
2019/01/08 HTML / CSS
美国一家主打母婴用品的团购网站:zulily
2017/09/19 全球购物
省级四好少年事迹材料
2014/01/25 职场文书
大学生英语演讲稿
2014/04/24 职场文书
环境卫生标语
2014/06/09 职场文书
学校开学标语
2014/10/06 职场文书
长江七号观后感
2015/06/11 职场文书
好人好事新闻稿
2015/07/17 职场文书
go语言中fallthrough的用法说明
2021/05/06 Golang
SpringBoot快速入门详解
2021/07/21 Java/Android