Python中pandas刪除數(shù)據(jù)表中的重復(fù)值的實(shí)現(xiàn)
Python中刪除數(shù)據(jù)表中重復(fù)值的方法非常多,本文主要講解的是pandas中的drop_duplicates()方法去重。
引用pandas
import pandas as pd
若沒(méi)有pandas類包,通過(guò)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)

通過(guò)輸出的數(shù)據(jù)表可以看出,city中第0行、第2行、第5行數(shù)據(jù)重復(fù),要想刪除重復(fù)數(shù)據(jù)的行,在pandas中可以使用drop_duplicates()函數(shù)進(jìn)行刪除。
drop_duplicates()函數(shù)說(shuō)明:
來(lái)源于frame.py,主要參數(shù)說(shuō)明如下:
subset:表示要去重的列名,默認(rèn)為None。
keep:first、last、False;first表示保留首次出現(xiàn)的數(shù)據(jù),last表示保留最后一個(gè)數(shù)據(jù),F(xiàn)alse表示重復(fù)的數(shù)據(jù)全部不留。
inplace:True、False;True表示基于原數(shù)據(jù)表進(jìn)行修改,F(xiàn)alse表示去重后生成一個(gè)新的copy對(duì)象。
例:
# 在原表中刪除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時(shí),將保留第5行數(shù)據(jù),當(dāng)keep=False時(shí),刪除第0行、第2行、第5行數(shù)據(jù)。
上述為inplace=True時(shí),在原數(shù)據(jù)表df表中對(duì)數(shù)據(jù)進(jìn)行了更改。
當(dāng)inplace=False時(shí),程序?qū)?huì)copy一個(gè)新的數(shù)據(jù)表,在新copy的數(shù)據(jù)表中進(jìn)行刪除,不會(huì)影響原表的數(shù)據(jù)。
例:
df.drop_duplicates(subset=['city'],keep='first',inplace=False) print(df)
此時(shí)輸出的df數(shù)據(jù)表結(jié)果為:

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

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

到此這篇關(guān)于Python中pandas刪除數(shù)據(jù)表中的重復(fù)值的文章就介紹到這了,更多相關(guān)pandas刪除重復(fù)值內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
在Django的URLconf中進(jìn)行函數(shù)導(dǎo)入的方法
這篇文章主要介紹了在Django的URLconf中進(jìn)行函數(shù)導(dǎo)入的方法,Django是Python的最為著名的開(kāi)發(fā)框架,需要的朋友可以參考下2015-07-07
Python字符串操作實(shí)戰(zhàn)之如何提取子字符串
這篇文章主要給大家介紹了關(guān)于Python字符串操作實(shí)戰(zhàn)之如何提取子字符串的相關(guān)資料,字符串是Python中最常用的數(shù)據(jù)類型,大家應(yīng)該都不陌生,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-06-06
Python實(shí)現(xiàn)根據(jù)文件后綴統(tǒng)計(jì)文件大小并找出文件位置
這篇文章主要和大家分享了一個(gè)Python腳本,主要用于統(tǒng)計(jì)指定文件夾內(nèi)特定后綴文件的數(shù)量、大小及路徑,并支持多種格式導(dǎo)出,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2026-05-05
pytorch masked_fill報(bào)錯(cuò)的解決
今天小編就為大家分享一篇pytorch masked_fill報(bào)錯(cuò)的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-02-02
Python數(shù)據(jù)結(jié)構(gòu)之優(yōu)先級(jí)隊(duì)列queue用法詳解
queue庫(kù)提供了一個(gè)適用于多線程編程的先進(jìn)先出(FIFO)數(shù)據(jù)結(jié)構(gòu),可以用來(lái)在生產(chǎn)者與消費(fèi)者線程之間安全地傳遞消息或其他數(shù)據(jù),它會(huì)為調(diào)用者處理鎖定,使多個(gè)線程可以安全而更容易地處理同一個(gè)Queue實(shí)例.Queue的大小可能受限,以限制內(nèi)存使用或處理,需要的朋友可以參考下2021-05-05
詳解Python數(shù)據(jù)分析--Pandas知識(shí)點(diǎn)
這篇文章主要介紹了Python數(shù)據(jù)分析--Pandas知識(shí)點(diǎn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03

