python DataFrame消除重复_dataframe 一列的不同值


df.duplicated() :

duplicated方法返回的是一个布尔值Series, 与之前出现的行对比,是否存在重复的行.如果重复则返回True.

先来造一个DF数组,重复的行我已经标识出来了.


python DataFrame消除重复_dataframe 一列的不同值_02


使用duplicated方法后,索引3,4都显示为True,因为3行与1行重复了,而4行与2行重复了.


python DataFrame消除重复_dataframe删除一列_03


df.drop_duplicates()

drop_duplicates方法返回的是一个新的DataFrame数组,返回的数组就是duplicatedFalse的部分.

这里可以清楚的看到,索引值为3和4的部分不见了.


python DataFrame消除重复_dataframe删除一列_04


到目前为止,检查重复值都是基于整行来检测,那么假设有下面这样一个数组


python DataFrame消除重复_dataframe 一列的不同值_05


我添加了新的一列,这样一来,每一行都不是重复的.我们使用duplicated检查一下,可以看到返回的布尔值没有为True的,意味着没有重复的行出现.


python DataFrame消除重复_dataframe删除一列_06


那么我们看one这一列,里面明明只有'a','b'两个类型,假设我现在希望'one'这一列没有重复值的出现,该怎么做呢?

再介绍一下 drop_duplicates() 方法.

在这里未经同意援引作者OraYang的博客内容,作为学习之用.

DataFrame.drop_duplicates(subset=None, keep='first', inplace=False)


python DataFrame消除重复_dataframe 一列的不同值_07


下面还是来个实例看看吧,以这个数组为例.


python DataFrame消除重复_dataframe 一列的不同值_05


下面的图中用红箭头标识出来的两个参数都是在默认状态下的参数,就是你填或者不填效果都是这样.


python DataFrame消除重复_dataframe 一列的不同值_09


上图中的first是删除重复项,并保存第一次出现的项.

下图中的last是删除重复项,并保存最后出现的项.


python DataFrame消除重复_dataframe 一列的不同值_10


接下来再改变一下inplace的参数,它默认状态下是False,这样就不会更改原来的数组data,而且会返回一个新的数组.

将inplace改成True之后将会直接更改你的原始数组data.下图可以看到,运行之后并没有出现新的数组.


python DataFrame消除重复_dataframe删除一列_11


再运行data之后就能看到data数组本身已经被改变了.


python DataFrame消除重复_dataframe 一列的不同值_12


在有3列的情况下,我们也可以选择其中2列进行重复值的删除,传入的列名使用列表形式.


python DataFrame消除重复_数组_13