Python中pandas刪除數(shù)據(jù)表中的重復(fù)值的實(shí)現(xiàn)
Python中刪除數(shù)據(jù)表中重復(fù)值的方法非常多,本文主要講解的是pandas中的drop_duplicates()方法去重。
引用pandas
import pandas as pd
若沒有pandas類包,通過pip install進(jìn)行安裝。在終端中輸入:
pip install pandas
創(chuàng)建數(shù)據(jù)表:
date_range = pd.date_range(start='2025-01-01', periods=6) # 生成日期數(shù)據(jù)
df = pd.DataFrame({'id': [1001, 1002, 1003, 1004, 1005, 1006],
'data': date_range,
'city': ['beijing', 'shanghai', 'beijing', 'Shengzhen', 'wuhan', 'beijing'],
'price': [23, 30, 23, 54, 26, 25]},
columns=['id', 'data', 'city', 'price'])輸出結(jié)果為:
print(df)

通過輸出的數(shù)據(jù)表可以看出,city中第0行、第2行、第5行數(shù)據(jù)重復(fù),要想刪除重復(fù)數(shù)據(jù)的行,在pandas中可以使用drop_duplicates()函數(shù)進(jìn)行刪除。
drop_duplicates()函數(shù)說明:
來源于frame.py,主要參數(shù)說明如下:
subset:表示要去重的列名,默認(rèn)為None。
keep:first、last、False;first表示保留首次出現(xiàn)的數(shù)據(jù),last表示保留最后一個數(shù)據(jù),F(xiàn)alse表示重復(fù)的數(shù)據(jù)全部不留。
inplace:True、False;True表示基于原數(shù)據(jù)表進(jìn)行修改,F(xiàn)alse表示去重后生成一個新的copy對象。
例:
# 在原表中刪除city中重復(fù)的內(nèi)容,并保留首次出現(xiàn)的數(shù)據(jù) df.drop_duplicates(subset=['city'],keep='first',inplace=True)
輸入結(jié)果為:

保留了第0行,刪除第2行、第5行的數(shù)據(jù)。以此類推:當(dāng)keep=last時,將保留第5行數(shù)據(jù),當(dāng)keep=False時,刪除第0行、第2行、第5行數(shù)據(jù)。
上述為inplace=True時,在原數(shù)據(jù)表df表中對數(shù)據(jù)進(jìn)行了更改。
當(dāng)inplace=False時,程序?qū)opy一個新的數(shù)據(jù)表,在新copy的數(shù)據(jù)表中進(jìn)行刪除,不會影響原表的數(shù)據(jù)。
例:
df.drop_duplicates(subset=['city'],keep='first',inplace=False) print(df)
此時輸出的df數(shù)據(jù)表結(jié)果為:

df數(shù)據(jù)表中的數(shù)據(jù)沒有發(fā)生變化,表示此時修改的對象非df數(shù)據(jù)表。
# 刪除df數(shù)據(jù)表city列中重復(fù)的數(shù)據(jù),并賦值值給df2 df2 = df.drop_duplicates(subset=['city'],keep='first',inplace=False) print(df2)
此時輸出的df2數(shù)據(jù)表結(jié)果為:

從上述結(jié)果看出,當(dāng)inplace=False時,程序?qū)opy一個新的數(shù)據(jù)表,在新copy的數(shù)據(jù)表中對重復(fù)的數(shù)據(jù)進(jìn)行刪除。
補(bǔ)充說明:
在pandas中還有一個drop_duplicates(),該方法來源于series.py。使用時會生成一個新的數(shù)據(jù)表,在使用時inplace不能為True,否則會返回None。
例:
df3 = df['city'].drop_duplicates(keep='first',inplace=False)
輸出結(jié)果為:

到此這篇關(guān)于Python中pandas刪除數(shù)據(jù)表中的重復(fù)值的文章就介紹到這了,更多相關(guān)pandas刪除重復(fù)值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Django零基礎(chǔ)入門之自定義過濾器及模板中的使用
這篇文章主要介紹了Django零基礎(chǔ)入門之自定義過濾器及模板中的使用,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09
Python腳本實(shí)現(xiàn)自動登錄校園網(wǎng)
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著如何使用Python腳本實(shí)現(xiàn)自動登錄校園網(wǎng)展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖
使用matplotlib.colors模塊可以完成大多數(shù)常見的任務(wù),下面這篇文章主要給大家介紹了關(guān)于如何使用Python修改matplotlib.pyplot.colorbar的位置以對齊主圖的相關(guān)資料,需要的朋友可以參考下2022-07-07
Python .py生成.pyd文件并打包.exe 的注意事項(xiàng)說明
這篇文章主要介紹了Python .py生成.pyd文件并打包.exe 的注意事項(xiàng)說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-03-03
關(guān)于torch.optim的靈活使用詳解(包括重寫SGD,加上L1正則)
今天小編就為大家分享一篇關(guān)于torch.optim的靈活使用詳解(包括重寫SGD,加上L1正則),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
numpy.random.seed()的使用實(shí)例解析
這篇文章主要介紹了numpy.random.seed()的使用實(shí)例解析,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下2018-02-02
Python操作MongoDb數(shù)據(jù)庫流程詳解
這篇文章主要介紹了Python操作MongoDb數(shù)據(jù)庫流程詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-03-03

