dataframe 一列的不同值_pandas数据清洗:删除重复值

63fe18644929d89cbf0710b93a1cf42a.png

df.duplicated() :

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

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

6fe239ed0865695867d3c720737578ad.png

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

f28002f50821b48d90035044ff395511.png

df.drop_duplicates() ⬅注意这里后面是'S'结尾的.

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

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

d97cfdf4915f4706ca5df5068bd773ea.png

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

8f3d0d1ad7dab8ed4b047e26377e2b08.png

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

aae170001e5aae43142d9cf23ae5873a.png

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

再介绍一下 drop_duplicates() 方法.

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

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

6961b15d7e2175c1ff29d7aee0bb5618.png

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

8f3d0d1ad7dab8ed4b047e26377e2b08.png

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

3f1e1f9b80092a7cdfd8f70e132328f8.png

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

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

4b63020f7bcdd636dcce338999d51950.png

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

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

e82f58b1f87e78663a69b3c6ccd4387a.png

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

295c8f619b2eb4a4e7541e6fe1976d96.png

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

32dd61d13320c45f609b437e30778d9f.png
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值