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目录操作之python遍历文件夹后将结果存储为xml
Jan 27 Python
Python性能优化技巧
Mar 09 Python
python django 增删改查操作 数据库Mysql
Jul 27 Python
Python matplotlib通过plt.scatter画空心圆标记出特定的点方法
Dec 13 Python
基于Python在MacOS上安装robotframework-ride
Dec 28 Python
python实现最小二乘法线性拟合
Jul 19 Python
如何在Django中使用聚合的实现示例
Mar 23 Python
基于python 凸包问题的解决
Apr 16 Python
python Selenium 库的使用技巧
Oct 16 Python
python时间time模块处理大全
Oct 25 Python
浅谈Python 中的复数问题
May 19 Python
Python语言中的数据类型-序列
Feb 24 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
解析Win7 XAMPP apache无法启动的问题
2013/06/26 PHP
使用PHP导出Word文档的原理和实例
2013/10/21 PHP
CentOS安装php v8js教程
2015/02/26 PHP
PHP的pcntl多进程用法实例
2015/03/19 PHP
弹出模态框modal的实现方法及实例
2017/09/19 PHP
Laravel中的Blade模板引擎示例详解
2017/10/10 PHP
jQuery 使用个人心得
2009/02/26 Javascript
用JS控制回车事件的代码
2011/02/20 Javascript
jQuery基本过滤选择器使用介绍
2013/04/18 Javascript
JS数组排序技巧汇总(冒泡、sort、快速、希尔等排序)
2015/11/24 Javascript
基于JS实现新闻列表无缝向上滚动实例代码
2016/01/22 Javascript
AngularJS入门教程之控制器详解
2016/07/27 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
Angular 输入框实现自定义验证功能
2017/02/19 Javascript
基于casperjs和resemble.js实现一个像素对比服务详解
2018/01/10 Javascript
微信小程序适配iphoneX的实现方法
2018/09/18 Javascript
tracking.js页面人脸识别插件使用方法
2020/04/16 Javascript
Vue组件的使用及个人理解与介绍
2019/02/09 Javascript
ES10的13个新特性示例(小结)
2019/09/23 Javascript
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
Vue $attrs & inheritAttr实现button禁用效果案例
2020/12/07 Vue.js
Python开发的实用计算器完整实例
2017/05/10 Python
Python中int()函数的用法浅析
2017/10/17 Python
Python 3.x 安装opencv+opencv_contrib的操作方法
2018/04/02 Python
python获取程序执行文件路径的方法(推荐)
2018/04/26 Python
python制作抽奖程序代码详解
2021/01/15 Python
使用html2canvas实现浏览器截图的示例代码
2018/01/26 HTML / CSS
建筑公司文秘岗位职责
2013/11/29 职场文书
社区工作者先进事迹
2014/01/18 职场文书
优秀毕业生就业推荐信
2014/05/22 职场文书
小学生国庆演讲稿
2014/09/05 职场文书
2015年支教教师工作总结
2015/07/22 职场文书
消防安全主题班会
2015/08/12 职场文书
python用tkinter开发的扫雷游戏
2021/06/01 Python
Python+Pillow+Pytesseract实现验证码识别
2022/05/11 Python
Java实现带图形界面的聊天程序
2022/06/10 Java/Android