pandas的drop_duplicates無(wú)法去重問(wèn)題解決
之前沒(méi)研究過(guò)pandas的去重方法,今天用了一下,發(fā)現(xiàn)這個(gè)方法并不是那么好用,我的需求是去除所有列的重復(fù)值,并保留第一個(gè)重復(fù)的值,按我的想法應(yīng)該是下面這樣寫
import pandas as pd import numpy as np df1 = pd.DataFrame({ 'a':[1,1,float('nan'),1,4,5], 'b':[3,3,4,4,5,6], 'c':[4,4,5,5,6,7], }) df1 = df1.drop_duplicates(keep='first') df1
但是結(jié)果卻不盡如人意,
a b c
0 1.0 3 4
2 NaN 4 5
3 1.0 4 5
4 4.0 5 6
5 5.0 6 7
如圖所示,并沒(méi)有刪除重復(fù)值,所以我只能一個(gè)一個(gè)列的刪,刪完在重新拼接在一起,
import pandas as pd import numpy as np df1 = pd.DataFrame({ 'a':[1,1,float('nan'),1,4,5], 'b':[3,3,4,4,5,6], 'c':[4,4,5,5,6,7], }) cols = df1.columns.to_list() series_list = [] for col in cols: tmp_s = df1[col].drop_duplicates(keep='first') tmp_s = tmp_s.dropna() tmp_s = tmp_s.reset_index(drop=True) print(tmp_s) series_list.append(tmp_s) new_df = pd.concat(series_list,axis=1) new_df
結(jié)果
a b c
0 1.0 3 4
1 4.0 4 5
2 5.0 5 6
3 NaN 6 7
當(dāng)然這樣數(shù)據(jù)的索引是無(wú)法跟之前的對(duì)應(yīng)起來(lái)了,所以我猜pandas是想保留之前的數(shù)據(jù)的對(duì)應(yīng)關(guān)系的,一旦有操作要破壞這種對(duì)應(yīng),它就不會(huì)執(zhí)行
drop_duplicates()官方的函數(shù)說(shuō)明
解釋一下各個(gè)參數(shù):
subset:表示要去重的列名,默認(rèn)為 None。
keep:有三個(gè)可選參數(shù),分別是 first、last、False,默認(rèn)為 first,表示只保留第一次出現(xiàn)的重復(fù)項(xiàng),刪除其余重復(fù)項(xiàng),last 表示只保留最后一次出現(xiàn)的重復(fù)項(xiàng),F(xiàn)alse 則表示刪除所有重復(fù)項(xiàng)。
inplace:布爾值參數(shù),默認(rèn)為 False 表示刪除重復(fù)項(xiàng)后返回一個(gè)副本,若為 Ture 則表示直接在原數(shù)據(jù)上刪除重復(fù)項(xiàng),改變了原來(lái)的數(shù)據(jù)框。
ignore_index:布爾值參數(shù),默認(rèn)為False,表示保留原來(lái)的行索引,若為True,則表示重新設(shè)置行索引。
到此這篇關(guān)于pandas的drop_duplicates無(wú)法去重問(wèn)題解決的文章就介紹到這了,更多相關(guān)pandas的drop_duplicates無(wú)法去重內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Pandas去除重復(fù)項(xiàng)函數(shù)詳解drop_duplicates()
- Pandas之使用drop_duplicates:去除重復(fù)項(xiàng)
- Pandas 中的 drop_duplicates()詳解
- pandas重復(fù)行刪除操作df.drop_duplicates和df.duplicated的區(qū)別
- Python?Pandas中DataFrame.drop_duplicates()刪除重復(fù)值詳解
- pandas.DataFrame.drop_duplicates 用法介紹
- 詳解pandas使用drop_duplicates去除DataFrame重復(fù)項(xiàng)參數(shù)
- Pandas之drop_duplicates:去除重復(fù)項(xiàng)方法
相關(guān)文章
使用Python爬取Json數(shù)據(jù)的示例代碼
這篇文章主要介紹了使用Python爬取Json數(shù)據(jù)的示例代碼,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-12-12python報(bào)錯(cuò)解決之python運(yùn)行bat文件的各種問(wèn)題處理
這篇文章主要介紹了python報(bào)錯(cuò)解決之python運(yùn)行bat文件的各種問(wèn)題處理,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-06-06Python+KgCaptcha實(shí)現(xiàn)驗(yàn)證碼的開(kāi)發(fā)詳解
驗(yàn)證碼通常是為了區(qū)分用戶是人還是計(jì)算機(jī),也可以防止解開(kāi)密碼等惡意行為,而客戶端上多數(shù)會(huì)用在關(guān)鍵操作上?,F(xiàn)在驗(yàn)證碼的種類樣式也特別多,本文主要介紹了如何用Python和KgCaptcha做出驗(yàn)證碼功能,需要的可以參考一下2023-04-04python requests.post帶head和body的實(shí)例
今天小編就為大家分享一篇python requests.post帶head和body的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-01-01利用Python代碼實(shí)現(xiàn)數(shù)據(jù)可視化的5種方法詳解
在數(shù)據(jù)科學(xué)中,有多種工具可以進(jìn)行可視化。下面這篇文章主要給大家介紹了關(guān)于利用Python代碼實(shí)現(xiàn)數(shù)據(jù)可視化的5種方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起看看吧。2018-03-03解決Python3 被PHP程序調(diào)用執(zhí)行返回亂碼的問(wèn)題
今天小編就為大家分享一篇解決Python3 被PHP程序調(diào)用執(zhí)行返回亂碼的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-02-02python連接池pooledDB源碼閱讀參數(shù)的使用
這篇文章主要介紹了python連接池pooledDB源碼閱讀參數(shù)的使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-07-07Python打開(kāi)文件,將list、numpy數(shù)組內(nèi)容寫入txt文件中的方法
今天小編就為大家分享一篇Python打開(kāi)文件,將list、numpy數(shù)組內(nèi)容寫入txt文件中的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-10-10pytorch中的nn.Unfold()函數(shù)和fold()函數(shù)解讀
這篇文章主要介紹了pytorch中的nn.Unfold()函數(shù)和fold()函數(shù)用法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08