1. 程式人生 > 其它 >pandas(13):資料清洗(重複記錄)

pandas(13):資料清洗(重複記錄)

資料來源:

df= pd.DataFrame({'k1': [ 's1']* 3 + ['s2']* 5,'k2' : [1, 1, 2, 3, 3, 4, 4,4]})
df

1 重複值判斷和檢視

df.duplicated(subset=None, keep='first')

功能:
指定列資料重複項判斷,返回指定列重複行boolean Series.
引數說明:

  • subset=None:列標籤或標籤序列,可選,只考慮某些列來識別重複項;預設使用所有列。
  • keep='first':{'first','last',False}
    • first:將第一次出現重複值標記為True。
    • last:將最後一次出現重複值標記為True。
    • False:將所有重複項標記為True。
# 預設判斷所有列,只有第一條不標記為true,後面重複出現的都是true
df.duplicated()
# subset=[list],只判斷指定列
df.duplicated(subset=['k1'])
# keep='last',只最後一次不標記為true,前面的都標記為true
df.duplicated(keep='last')
# keep=false,所有重複項都標記為true
df.duplicated(keep=False)
# 檢視記錄重複數量,不包括首次出現那條記錄
df.duplicated().value_counts()
# 檢視記錄重複的所有數量
df.duplicated(keep=False).value_counts()
# 檢視所有重複記錄
df[df.duplicated(keep=False)]
# 檢視除首條外的所有重複記錄
df[df.duplicated()]

2 重複值刪除

df.drop_duplicates(subset=None, keep='first', inplace=False)