python中drop_duplicates()函數(shù)的具體使用
一、基礎(chǔ)語(yǔ)法
# DataFrame 使用
df.drop_duplicates(
subset=None,
keep="first",
inplace=False,
ignore_index=False
)
# Series 使用(用法一致)
s.drop_duplicates(keep="first", inplace=False)參數(shù)說(shuō)明
| 參數(shù) | 說(shuō)明 | 默認(rèn)值 |
|---|---|---|
subset | 指定檢查重復(fù)的列名或列名列表 | None(所有列) |
keep | 保留哪個(gè)重復(fù)值:'first'/'last'/False | 'first' |
inplace | 是否原地修改 | False |
ignore_index | 是否重置索引 | False |
二、4 個(gè)核心參數(shù)(必看)
這是理解這個(gè)函數(shù)的關(guān)鍵,每個(gè)參數(shù)都有明確用途:
1.subset:指定判斷重復(fù)的列
- 默認(rèn)值:
None→ 整行所有列都相同才算重復(fù) - 用法:傳入列名列表,比如
subset=["姓名", "年齡"]→ 只有這兩列都相同才判定為重復(fù)
2.keep:保留哪一行
keep="first"(默認(rèn)):保留第一次出現(xiàn)的行,刪除后面重復(fù)的keep="last":保留最后一次出現(xiàn)的行,刪除前面重復(fù)的keep=False:把所有重復(fù)行全部刪除,一條都不留
3.inplace:是否直接修改原數(shù)據(jù)
inplace=False(默認(rèn)):返回一個(gè)新的 DataFrame,原數(shù)據(jù)不變inplace=True:直接在原數(shù)據(jù)上刪除重復(fù)行,不返回新對(duì)象
4.ignore_index:是否重置索引
ignore_index=False(默認(rèn)):刪除后保留原來(lái)的索引ignore_index=True:刪除后重置索引為 0,1,2...
三、最直觀的示例(一看就懂)
先創(chuàng)建一個(gè)帶重復(fù)數(shù)據(jù)的 DataFrame:
import pandas as pd
data = {
"姓名": ["小明", "小紅", "小明", "小明", "小紅"],
"科目": ["數(shù)學(xué)", "語(yǔ)文", "數(shù)學(xué)", "英語(yǔ)", "語(yǔ)文"],
"分?jǐn)?shù)": [90, 85, 90, 88, 85]
}
df = pd.DataFrame(data)
print(df)輸出:
姓名 科目 分?jǐn)?shù)
0 小明 數(shù)學(xué) 90
1 小紅 語(yǔ)文 85
2 小明 數(shù)學(xué) 90 ← 重復(fù)行
3 小明 英語(yǔ) 88
4 小紅 語(yǔ)文 85 ← 重復(fù)行
示例 1:默認(rèn)用法(整行重復(fù)才刪,保留第一次)
df_new = df.drop_duplicates() print(df_new)
結(jié)果:行 0、1、3、4 保留,行 2 刪除。
示例 2:只按某幾列判斷重復(fù)
# 只要【姓名+科目】重復(fù)就算重復(fù) df_new = df.drop_duplicates(subset=["姓名", "科目"])
示例 3:保留最后一次出現(xiàn)的重復(fù)行
df_new = df.drop_duplicates(keep="last")
示例 4:徹底刪除所有重復(fù)行(一條不留)
df_new = df.drop_duplicates(keep=False)
示例 5:直接修改原數(shù)據(jù) + 重置索引
df.drop_duplicates(inplace=True, ignore_index=True)
四、高頻實(shí)用場(chǎng)景總結(jié)
整表去重
df.drop_duplicates()
按關(guān)鍵字段去重(最常用)
df.drop_duplicates(subset=["ID", "訂單號(hào)"])
保留最新數(shù)據(jù)
df.drop_duplicates(subset=["用戶ID"], keep="last")
找出所有完全唯一的數(shù)據(jù)
df.drop_duplicates(keep=False)
五、重要注意事項(xiàng)
- 區(qū)分 drop_duplicates() 和 unique()
- drop_duplicates() → 返回DataFrame
- unique() → 返回一維數(shù)組(numpy array)
- 空值 NaN 會(huì)被視為相同值兩行都有 NaN,會(huì)被判定為重復(fù)
- 不修改原數(shù)據(jù)(默認(rèn))想直接覆蓋原數(shù)據(jù)必須加 inplace=True
總結(jié)
drop_duplicates() 就是 pandas 去重神器,核心記住 4 點(diǎn):
- subset 定判斷重復(fù)的列
- keep 定保留哪條重復(fù)數(shù)據(jù)
- inplace 定是否改原數(shù)據(jù)
- ignore_index 定是否重置索引
到此這篇關(guān)于python中drop_duplicates()函數(shù)的具體使用的文章就介紹到這了,更多相關(guān)python drop_duplicates() 使用內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python使用pdf2image實(shí)現(xiàn)PDF轉(zhuǎn)圖片的完整指南
pdf2image 是一個(gè)用于將 PDF 文件轉(zhuǎn)換為圖像的 Python 庫(kù),它基于強(qiáng)大的 poppler-utils 工具集,提供簡(jiǎn)單高效的 PDF 到圖像的轉(zhuǎn)換功能,本文給大家介紹了Python使用pdf2image實(shí)現(xiàn)PDF轉(zhuǎn)圖片的完整指南,需要的朋友可以參考下2025-11-11
Python Pandas pandas.read_sql函數(shù)實(shí)例用法
在本篇文章里小編給大家整理的是一篇關(guān)于Python Pandas pandas.read_sql函數(shù)詳解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。2021-06-06
python實(shí)現(xiàn)DEM數(shù)據(jù)的陰影生成的方法
這篇文章主要介紹了python實(shí)現(xiàn)DEM數(shù)據(jù)的陰影生成的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
Python實(shí)現(xiàn)輕松比較兩個(gè)文件夾的多種方法
在處理數(shù)據(jù)集時(shí),我們經(jīng)常會(huì)遇到兩個(gè)文件夾中文件數(shù)目不一致的情況,本文我們就來(lái)使用Python比較一下兩個(gè)文件夾,輕松實(shí)現(xiàn)找出多出的文件,有需要的可以了解下2025-09-09
Python讀寫(xiě)及備份oracle數(shù)據(jù)庫(kù)操作示例
這篇文章主要介紹了Python讀寫(xiě)及備份oracle數(shù)據(jù)庫(kù)操作,結(jié)合實(shí)例形式分析了Python針對(duì)Oracle數(shù)據(jù)庫(kù)操作的相關(guān)庫(kù)安裝,以及使用cx_Oracle與pandas庫(kù)進(jìn)行Oracle數(shù)據(jù)庫(kù)的查詢、插入、備份等操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-05-05
Python使用Matplotlib實(shí)現(xiàn)Logos設(shè)計(jì)代碼
這篇文章主要介紹了Python使用Matplotlib實(shí)現(xiàn)Logos設(shè)計(jì)代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下。2017-12-12
python實(shí)現(xiàn)定制交互式命令行的方法
這篇文章主要介紹了python實(shí)現(xiàn)定制交互式命令行的方法,需要的朋友可以參考下2014-07-07
python導(dǎo)入坐標(biāo)點(diǎn)的具體操作
在本篇文章里小編給大家分享了關(guān)于python導(dǎo)入坐標(biāo)點(diǎn)的具體操作步驟和圖解,有需要的朋友們跟著學(xué)習(xí)下。2019-05-05
使用python連接mysql數(shù)據(jù)庫(kù)數(shù)據(jù)方式
這篇文章主要介紹了使用python連接mysql數(shù)據(jù)庫(kù)數(shù)據(jù)方式,住喲有兩種方式,具體內(nèi)容,需要的小伙伴可以參考下面文章內(nèi)容,希望對(duì)你有所幫助2022-03-03
神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用gpu設(shè)置的方式
這篇文章主要介紹了神經(jīng)網(wǎng)絡(luò)訓(xùn)練采用gpu設(shè)置的方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-03-03

