DataFrame如何删除数据?如何drop一行或一列数据?
发布于 作者:苏南大叔 来源:程序如此灵动~

继续聊一聊pandas
的DataFrame
的用法,本文中说一说dataframe
删除数据的几种方式。dataframe
里面如何删除一列数据?如何删除一行数据?这些都是本文中要讨论的话题。

大家好,这里是苏南大叔的“程序如此灵动”博客,这里讲述苏南大叔和计算机代码的事情。dataframe
的数据,有几种删除的方法?“茴香豆的茴字有几种写法?”本文散发着一点点酸腐的气息。本文测试环境:python@3.6.8
,pandas@1.1.5
。
基本定义
这里先定义个dataframe
数据,然后copy
一个作为备份。
注意:在python
中,使用=
进行赋值操作的话,两者指向同一个位置。一个变另外一个也变。必须使用.copy()
才能正确操作。
关于pandas
定义一个新的dataframe
的几种方式,下面的文章里面有介绍文字:
奇怪的参数
下面的操作中,会有个很奇怪的隐藏参数inplace
,有两种情况:
inplace=False
,inplace
默认为False
,意思是不改变原数据。改变后的数据会被返回。inplace=True
,这种情况下,没有返回值。直接修改原数据。
另外有一个labels
的概念:
axis=1
的时候,labels
指的就是columns
【注意这里有个s
】。axis=0
的时候,labels
指的就是index
【注意这里没有s
】。
删除一列数据
删除一列数据的方式,有哪些呢?
方式一del
这个方式非常简单直观,直接就是删除一列数据,最简单暴露推荐。例如:
测试代码:
方式二.pop()
这种方式,虽然也是可以删除一列数据,但是在del
的效果之上,函数还获得了被删除的这一列数据。例如:
这里的pop()
不考虑先入先出的情况,想删除那列数据就直接指定名字就可以。一次只能对一个数据帧进行操作。
测试代码:
方式三.drop('',axis=1)
对于列名,可以传递数组,也可以是字符串。数组的话,就可以传递多个列名。
测试代码:
测试代码:
方式四.drop(columns=[])
axis=1
的意思就是columns
,意思是删除一列数据。这里,同样存在inplace
的问题。
测试代码:
方式五.drop(labels=[],axis=1)
输出都是:
删除一行数据
删除一行数据的方式有些简单了,没有删除一列数据的时候那么复杂。有下面几种形式:
测试代码:
测试代码2:
测试代码3:
输出值为:
参考文献
总结
dataframe
的删除数据的方式似乎有点多,虽然每个函数都有它存在的理由,不过这里苏南大叔觉得这些函数太多了。头晕。


