在數據分析和處理過程中,識別和處理重複值是一個常見但關鍵的任務。Python 的 pandas 庫提供了強大的 duplicated() 方法來處理這類問題,而其中的 keep 參數尤其值得深入理解。本文將帶您全面了解這個參數的用法和應用場景。
keep 參數的三種模式
pandas.Series.duplicated() 方法的 keep 參數有三個可選值,每個都有不同的行為:
import pandas as pd
import numpy as np
# 創建一個包含重複值的示例 Series
s = pd.Series(['A', 'B', 'C', 'A', 'B', 'D'])1. keep=’first’(默認值)
當 keep=’first’ 時,
第一次出現的值被標記為 False(未重複),
而後續重複的值被標記為 True:
print("keep='first' 結果:")
print(s.duplicated(keep='first'))
print("標記為重複的值:")
print(s[s.duplicated(keep='first')].to_list())輸出結果:

2. keep=’last’
當 keep=’last’ 時,最後一次出現的值被標記為 False,而先前出現的重複值被標記為 True:
print("\nkeep='last' 結果:")
print(s.duplicated(keep='last'))
print("標記為重複的值:")
print(s[s.duplicated(keep='last')].to_list())輸出結果:

3. keep=False
當 keep=False 時,所有重複值都被標記為 True,無論是首次還是後續出現:
print("\nkeep=False 結果:")
print(s.duplicated(keep=False))
print("標記為重複的值:")
print(s[s.duplicated(keep=False)].to_list())輸出結果:

結論
掌握 pandas 中 duplicated() 方法的 keep 參數是進行高效數據處理的關鍵。根據您的具體需求選擇合適的 keep 值,可以讓您更精確地控制如何識別和處理重複數據。
無論是進行數據清洗、自動化測試流程分析,還是識別業務邏輯中的異常模式,duplicated() 方法的靈活應用都能幫助您更好地完成任務。
通過本文的詳細說明和實例,相信您已經對 keep 參數有了全面的了解,並能在自己的項目中靈活運用這一強大工具。

推薦hahow線上學習python: https://igrape.net/30afN


![Python 打造高容錯搜尋引擎:BM25、Bigram 與difflib自動糾錯實戰; from rank_bm25 import BM25Okapi ; bm25 = BM25Okapi(corpus_tokens) #corpus_tokens: list[list[str]] Python 打造高容錯搜尋引擎:BM25、Bigram 與difflib自動糾錯實戰; from rank_bm25 import BM25Okapi ; bm25 = BM25Okapi(corpus_tokens) #corpus_tokens: list[list[str]]](https://i0.wp.com/savingking.com.tw/wp-content/uploads/2026/02/20260209150527_0_a24c17.png?quality=90&zoom=2&ssl=1&resize=350%2C233)
![Python: pandas.DataFrame如何移除所有空白列?if df_raw.iloc[r,0] is np.nan: nanLst.append(r) ; df_drop0 = df_raw.drop(nanLst,axis=0) ; pandas.isna() ;df_drop0 = df_raw.drop(nanLst,axis=0).reset_index(drop=True) Python: pandas.DataFrame如何移除所有空白列?if df_raw.iloc[r,0] is np.nan: nanLst.append(r) ; df_drop0 = df_raw.drop(nanLst,axis=0) ; pandas.isna() ;df_drop0 = df_raw.drop(nanLst,axis=0).reset_index(drop=True)](https://i2.wp.com/savingking.com.tw/wp-content/uploads/2022/12/20221206144233_67.png?quality=90&zoom=2&ssl=1&resize=350%2C233)






近期留言