繁体   English   中英

DATAFRAME:删除列的值对于唯一键相等的重复项

[英]DATAFRAME: drop duplicates where column's values are equal for unique key

我想从 DF 中删除重复项,其中列的值对于一个唯一键是相等的。 例子:

在:

KEY         SYSTEM
TD-438426   AAA
TD-438426   BBB
TD-438426   AAA
TD-438709   BBB
TD-438709   BBB
TD-438750   CCC
TD-438750   CCC
TD-438750   CCC
TD-438874   AAA
TD-438874   BBB

出去:

KEY         SYSTEM
TD-438426   AAA
TD-438426   BBB
TD-438709   BBB
TD-438750   CCC
TD-438874   AAA
TD-438874   BBB

PS 当然,我想捕捉一些异常。

在:

KEY         TEST    SYSTEM
TD-438426   ABC     AAA
TD-438426   ABC     BBB

出去:

KEY         TEST    SYSTEM
TD-438426   ABC     AAA
TD-438426   ABC     BBB

在:

KEY         TEST    SYSTEM
TD-438426   ABC     AAA
TD-438426   CBA     AAA

出去:

KEY         TEST    SYSTEM
TD-438426   ABC     AAA

就像评论中提到的@mcsioni,你要找的是df.drop_duplicates()

此外,了解此方法的两个 arguments 也很有用,即subsetkeep

例如,您只想保留KEY列中的唯一值,并为每个唯一的KEY保留第一个SYSTEM值,您可以这样做:

df.drop_duplicates(subset=['KEY'], keep='first')

如果您只是使用df.drop_duplicates()而没有任何 arguments,则子集将是所有列,这就是您想要的 output 所要求的。

编辑

要跟上您的新要求,请执行以下操作:

df.drop_duplicates(subset=['KEY', 'SYSTEM'], keep='first')

注意: keep参数的默认行为是'first' ,但在使用像 pandas 这样的高级库时显式使用也无妨。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM