drop_duplicates函數介紹nginx
加載數據
web按照某一列去重實例微信
3.1 按照某一列去重(參數爲默認值)app
3.2 按照某一列去重(改變keep值)函數
3.3 按照某一列去重(inplace=True)
學習按照多列去重實例ui
![](http://static.javashuo.com/static/loading.gif)
DataFrame.drop_duplicates(subset=None,keep='first',inplace=False)
2、加載數據spa
![](http://static.javashuo.com/static/loading.gif)
# coding: utf-8import os #導入設置路徑的庫import pandas as pd #導入數據處理的庫import numpy as np #導入數據處理的庫
os.chdir('F:/微信公衆號/Python/26.基於多列組合刪除數據框中的重複值') #把路徑改成數據存放的路徑name = pd.read_csv('name.csv',sep=',',encoding='gb18030')name
獲得結果:.net
3、按照某一列去重
![](http://static.javashuo.com/static/loading.gif)
1 按照某一列去重(參數爲默認值)
按照name1對數據框去重。
new_name_1 = name.drop_duplicates(subset='name1')new_name_1
獲得結果:
從結果知,參數爲默認值時,是在原數據的copy上刪除數據,保留重複數據第一條並返回新數據框。
感興趣的能夠打印name數據框,刪重操做不影響name的值。
按照name1對數據框去重,並設置keep='last'。
new_name_1 = name.drop_duplicates(subset='name1',keep='last')new_name_1
獲得結果:
從結果知,參數keep='last',是在原數據的copy上刪除數據,保留重複數據最後一條並返回新數據框,不影響原始數據框name。
new_name_2 = name.drop_duplicates(subset='name1',keep=False)new_name_2
從結果知,參數keep=False,是把原數據copy一份,在copy數據框中刪除所有重複數據,並返回新數據框,不影響原始數據框name。
3 按照某一列去重(inplace=True)
new_name_3 = name.drop_duplicates(subset='name1',inplace=True)new_name_3
結果中new_name_3的值爲空,即設置inplace=True時沒有返回結果,是在原始數據框name上直接進行操做。打印name可得結果:
若是想保留原始數據框直接用默認值便可,若是想直接在原始數據框刪重可設置參數inplace=True。
4、按照多列去重
![](http://static.javashuo.com/static/loading.gif)
new_name = name.drop_duplicates(subset=['name1','relation'])new_name
原始數據中只有第二行和最後一行存在重複,默認保留第一條,故刪除最後一條獲得新數據框。
想要根據更多列數去重,能夠在subset中添加列。若是不寫subset參數,默認值爲None,即DataFrame中一行元素所有相同時纔去除。
如需處理這種類型的數據去重問題,參見本公衆號中的文章【Python】基於多列組合刪除數據框中的重複值。
-end-
往期回顧:
![](http://static.javashuo.com/static/loading.gif)
本文分享自微信公衆號 - 阿黎逸陽的代碼(gh_f3910c467dfe)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。