Python3教程:Pandas模块删除数据的几种情况

开始之前,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  证券卖出  中国联通

本例其实是筛选,如果需要保留,可以将筛选后的对象赋值给自己即可。

删除某列包含特殊字符的行

'''
学习中遇到问题没人解答?小编创建了一个Python学习交流群:711312441
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
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  证券卖出  中国联通

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python3教程:Pandas模块删除数据的几种情况 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • Python模块:subprocess模块教程

    一.subprocess模块 subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码。这个模块的目的在于替换几个旧的模块和方法,如: os.system os.spawn* 1.subprocess模块中的常用函数 函数 描述 subprocess…

    Python开发 2023年4月2日
    00
  • Python3基础教程:return和yield的区别

    一、说明 return一直中,每中语言中其没没有很大差别,就不多说了。(shell语言return的是退出状态,可能差别是比较大的) 最早看到yield应该是哪们语言用来调整什么线程优先级的,记不清了,不过那里的yield和python中的yield应该功能有区别。 python中最早看到yield应该是使用scrapy框架写爬虫的时候,之前也有去看yile…

    Python开发 2023年4月2日
    00
  • Http和Https的区别?

    1.HTTP是什么? http是超文本传输协议用来在web浏览器和网站服务器之间传递数据信息,http以明文的方式发送内容,不提供任何方式的数据加密,如果攻击者截获了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。为了解决http协议的这一缺陷,需要使用另一种协议:安…

    Python开发 2023年4月2日
    00
  • 获取Python函数信息的方法

    Python的反射机制可以动态获取对象信息以及动态调用对象,本文介绍如何获取对象中的函数注释信息以及参数信息。 定义一个Person类: class Person(): def talk(self, name, age, height=None): “””talk function :return: “”” print(f”My name is {name}…

    python 2023年4月18日
    00
  • Python类和对象的绑定方法及非绑定方法

    类中定义的方法大致可以分为两类:绑定方法和非绑定方法。其中绑定方法又可以分为绑定到对象的方法和绑定到类的方法。 一、绑定方法 1 对象的绑定方法 在类中没有被任何装饰器修饰的方法就是 绑定到对象的方法,这类方法专门为对象定制。 class Person: country = “China” def __init__(self, name, age): sel…

    Python开发 2023年3月31日
    00
  • Python中的关键字的用法

    Python有哪些关键字 Python常用的关键字 and, del, from, not, while, as, elif, global, or, with, assert, else, if, pass, yield, break, except, import, print, class, exec, in, raise, contiue, fina…

    Python开发 2023年3月31日
    00
  • Python教程:selenium模块用法教程

    1.介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转、输入、点击、下拉等,来拿到网页渲染之后的结果,可支持多种浏览器 from selenium import webdriver browser=webd…

    Python开发 2023年3月31日
    00
  • Python中logging模块用法

    一、低配logging 日志总共分为以下五个级别,这个五个级别自下而上进行匹配 debug–>info–>warning–>error–>critical,默认最低级别为warning级别。 1.v1 import logging logging.debug(‘调试信息’) logging.info(‘正常信息’) loggi…

    Python开发 2023年3月31日
    00
合作推广
合作推广
分享本页
返回顶部