簡體   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