如何用pandas提取不重復數據

今天的問題是如何從多行數據中提取不重復的行,有重復的不管其重復項還是其本身都刪除掉。如下圖所示,提取出其中不重復的那一行:

剛開始想了半天,找了半天資料也沒查到查到Python怎樣直接提取不重復值,后面轉念一想,提取不重復的不就是刪除重復值嗎?這死腦筋轉不過彎。

進入正題,要把重復的項刪掉,我們用到的是drop_duplicates來刪除重復值:

pandas.DataFrame.drop_duplicates

這個方法有兩個參數:

subset:要匹配重復項的列標簽,可以是單獨一個列,也可以是幾個列,用序列表示。默認是選擇所有列。

keep:刪除重復項留下哪一行,keep=first:留下重復項中的第一行。keep=last:留下最后一行。keep=False:刪除所有重復項。


提取完成

引申,那如果我們是通過導入csv文件的形式來處理數據,如果導入的文件沒有列標簽(column label)怎么辦呢,還能通過subset進行匹配嗎?其實read_csv在導入文件的時候已經為我們創建好列標簽了。read_csv會默認將文件的第一行設置為列標簽,如果我們不希望將第一行設置為列標簽,需要給read_csv設置一個參數,header=None,這樣pandas就會單獨加上一列數據[0,1,2,3...]為列標簽。subset通過這些標簽來匹配就可以了。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容