Python去掉或保留数据集中的重复行

有的时候我们会遇到这样的情况,数据集中一些列或所有列在某些行上取值相同,我们想要删掉完全重复的行,或者保留这些重复行,仅仅删除与其重复的那些行,那我们该怎么做呢?

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

我们处理重复行的想法可以通过DataFrame.drop_duplicates()中的参数完全实现。

其中subset这个参数默认‘None’是指选择所有列,即所有列的值都相同我才认为这两行是重复的,也可以自定义为其中一部分列变量名,比如subset=['name','sex','age']。

keep这个参数默认为‘first’,注意这里参数填写是字符串类型,在多个重复行中保留第一行,同理,‘last’是在多个重复行中保留最后一行。所以,如果subset我们使用默认参数None的话,那么keep参数中'first'和‘last’效果是一样的(但保留的对应index不同),因为这时候选择的重复行要求所有列的取值是相同的,而subset选择其中一些列的话,选择keep参数中'first'和‘last’会根据index的前后产生不同的效果。参数False会去除所有重复行。

举个栗子:

        name       sex         age

0    coco    female      7

1      lily         female        7

2     joe         male          15

3      coco    female        7

在这个例子中,如果我使用代码 DataFrame.drop_duplicates(subset = None, keep = 'first'),产生的结果如下:

        name       sex         age

0    coco    female           7

1      lily         female        7

2     joe         male          15

若使用代码DataFrame.drop_duplicates(subset = None, keep = 'last'),结果如下:

        name       sex         age

1      lily         female        7

2     joe         male          15

3      coco    female        7

发现不考虑index以及行的顺序,效果与参数first相同。

若使用代码DataFrame.drop_duplicates(subset = None, keep = False), 结果如下:

        name       sex         age

1      lily         female        7

2     joe         male          15

所有重复的行都被删除,没有保留。

若使用代码DataFrame.drop_duplicates(subset = ['sex' , 'age'] , keep = False), 结果如下:

        name       sex         age

2     joe         male          15







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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值