經常聽別人說 Python 在數據領域有多厲害,結果學了很長時間,連數據處理都麻煩得要死。後來才發現,原來不是 Python 數據處理厲害,而是他有數據分析神器—— pandas
前言
有時候數據中出現重複值,可能會導致最後的統計結果出現錯誤,因此,查找和移除重複值是數據處理中的常見操作。今天我們來看看 pandas 中是如何實現。
Excel 處理重複值
Excel 中直接提供了去除重複的功能,因此簡單操作即可實現。如下:
功能卡"數據","數據工具"中有"刪除重複項"按鈕接著可以選擇以哪些列作為重複判斷除此之外,Excel 中還可以使用條件格式、高級篩選或函數公式實現差不多的功能
pandas 標記重複值
pandas 中同樣提供一個簡單方法標記出重複值,並且比 Excel 有更多靈活處理方式供你選擇,我們來看看:
DataFrame.duplicated() ,生成是否為重複記錄的布爾標記。默認是整行所有數據作為判斷依據結果很明顯,最後一行是重複行,因此標記列最後一行的值是 True我們可以指定,當有重複值時,保留哪個位置的行。如下:
默認情況下,duplicated() 的 keep 參數為 "first",意思為"保留第一個"現在我們把 keep 設置為"last",那麼保留最後一個,因此現在重複的行中的第一行被標記為 True除此之外,我們還可以把 keep 參數設置為 False,意思是"不保留",如下:
現在凡是存在重複的行,都被標記 True通過參數 subset 可以指定哪些列作為判斷依據:
像 Excel 一樣去除重複
其實把重複值標記後,只需要簡單篩選即可得到非重複的記錄。但是 pandas 中有直接的方法去除重複。如下:
調用 DataFrame.drop_duplicates() ,即可去除重複他的參數與規則與 duplicated 一模一樣。實際就是把 duplicated() 標記為 True 的行去掉而已
最後
DataFrame.duplicated() ,標記出重複項。使用 subset 指定重複值判斷列,keep={'first','last',False} 指定怎麼判斷哪些是重複項DataFrame.drop_duplicates() ,去除重複項下一節,將看看排序功能的實現。敬請關注。
如果希望從零開始學習 pandas ,那麼可以看看我的 pandas 專欄。