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)

3 異常值初步查看代碼

for col_name in df.columns[:-1]:
    s=users_df[col_name].value_counts().sort_index().reset_index()
    if s.shape[0] > 20:
        print(pd.concat([s[:10],s[-10:]]))
    else:
        print(s)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM