Pandas 模块-操纵数据(7)-检测是否重复 .duplicated()

目录

7. 检测是否重复 .duplicated() 

7.1  .duplicated() 语法

7.1.1 语法结构

7.1.2 参数说明

7.2 .duplicated() 范例

7.2.1  subset 使用

7.2.2 keep 使用


7. 检测是否重复 .duplicated() 

        数据重复是一个特别普遍的现象,但不一定是用户所希望看到的。无论是从数据存储,还是数据利用角度,过多冗余重复的数据都会带来不必要的开支。首先,我们要能检测相关数据是否重复。

7.1  .duplicated() 语法

7.1.1 语法结构

Dataframe.duplicated(subset: 'Optional[Union[Hashable, Sequence[Hashable]]]' = None, keep: 'Union[str, bool]' = 'first')

7.1.2 参数说明

  • subset:列标识或者列的序列,可选。默认值是None,即使用所有的列进行检测,如果 subset 指定了部分列,则只考虑 subset 指定列是否重复。
  • keep:可选的集合  {'first', 'last', False},默认是 ‘first’。这个域决定了如何去标识重复行。

        'first':重复的行中,除了第一行,其余的都标识为 True

        'last':重复的行中,除了最后一行,其余的都标识为 True

        False:把所有重复的行中都标识为 True

返回值:数据结构为一个series,数据类型为布尔值

Help on method duplicated in module pandas.core.frame:

duplicated(subset: 'Optional[Union[Hashable, Sequence[Hashable]]]' = None, keep: 'Union[str, bool]' = 'first') -> 'Series' method of pandas.core.frame.DataFrame instance
    Return boolean Series denoting duplicate rows.
    
    Considering certain columns is optional.
    
    Parameters
    ----------
    subset : column label or sequence of labels, optional
        Only consider certain columns for identifying duplicates, by
        default use all of the columns.
    keep : {'first', 'last', False}, default 'first'
        Determines which duplicates (if any) to mark.
    
        - ``first`` : Mark duplicates as ``True`` except for the first occurrence.
        - ``last`` : Mark duplicates as ``True`` except for the last occurrence.
        - False : Mark all duplicates as ``True``.
    
    Returns
    -------
    Series
        Boolean series for each duplicated rows.

7.2 .duplicated() 范例

这个函数相对来说比较简单

先准备数据

dict_data={"a":list("abcdaf"),"b":list("abfccc"),"c":list("ghijgl")}
df=pd.DataFrame.from_dict(dict_data)
df

7.2.1  subset 使用

默认情况,即对全部列进行检测,没有找到重复的行。 

 只对部分列进行检测,如 'b' 列,3、4、5 行重复,4、5 行被标识为 True

7.2.2 keep 使用

keep=‘last’,即重复行不列出最后一行,3、4、5 行重复,3、4 行被标识为 True

df.duplicated(subset=['b'],keep="last")#subset 只考虑"b",重复行不列出最后一行

 keep=False,即把所有重复的行中都标识为 True,3、4、5 行重复,3、4、5 行都被标识为 True

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江南野栀子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值