pandas使用drop_duplicates去除DataFrame重復項


DataFrame中存在重復的行或者幾行中某幾列的值重復,這時候需要去掉重復行,示例如下:

data.drop_duplicates(subset=['A','B'],keep='first',inplace=True)

代碼中subset對應的值是列名,表示只考慮這兩列,將這兩列對應值相同的行進行去重。默認值為subset=None表示考慮所有列。

keep='first'表示保留第一次出現的重復行,是默認值。keep另外兩個取值為"last"和False,分別表示保留最后一次出現的重復行和去除所有重復行。

inplace=True表示直接在原來的DataFrame上刪除重復項,而默認值False表示生成一個副本。

 

將副本賦值給dataframe:

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

 

這一行代碼與文章開頭提到的那行代碼效果等效,但是如果在該DataFrame上新增一列:

data['extra']=test_data['item_price_level']

 

就會報如下錯誤:

SettingWithCopyWarning:  A value is trying to be set on a copy of a slice from a DataFrame. 

所以如果想對DataFrame去重,最好采用開頭提到的那行代碼。

 

參考文獻:

【1】pandas使用drop_duplicates去除DataFrame重復項參數詳解


免責聲明!

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



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