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去重,最好采用開頭提到的那行代碼。
參考文獻: