pandas去除重復(fù)值的實(shí)戰(zhàn)
加載數(shù)據(jù)
首先,我們需要加載到所需要的數(shù)據(jù),這里我們所需要的數(shù)據(jù)是同過sample函數(shù)采樣過來的。
import pandas as pd
#這里說明一下,clean_beer.csv數(shù)據(jù)有兩千多行數(shù)據(jù)
#所以從其中采樣一部分,來進(jìn)行演示,當(dāng)然可以簡單實(shí)用data.head()也可以做練習(xí)
data = pd.read_csv('clean_beer.csv')
data_sam = data.sample(frac=0.1,weights=data['ounces'].values)
data_sam1 = data_sam
data_sam
我們采用data[‘ounces']列為權(quán)重對數(shù)據(jù)進(jìn)行采樣,并將結(jié)果賦值給data_sam1,其中data_sam和data_sam1是后續(xù)我們需要用到的兩個(gè)數(shù)據(jù)(因?yàn)樾枰獙蓚€(gè)數(shù)據(jù)合并,并去除重復(fù))
此時(shí),data_sam和data_sam1的數(shù)據(jù)是一樣的。
data_sam數(shù)據(jù)
data_sam

data_sam1數(shù)據(jù)
data_sam1

sample抽樣函數(shù)
簡要介紹一下sample函數(shù)
df.sample()就是抽樣函數(shù),參數(shù)如下:
df.sample(n=None,frac=None,replace=Flase,weights=None,random_state=None,axis=None)
參數(shù)說明:
**n:**就是樣本量,如果不寫,就是抽一條數(shù)據(jù)
**frac:**抽樣比,就是樣本量占全樣本的比例,如frac=0.3 ,注意n和frac不能共存
replace:是否放回,默認(rèn)是不放回,如果有放回(replace=True)可以選擇比df長度更多的元素回來
weights:樣本權(quán)重,自動(dòng)歸一化,可以以某一列為權(quán)重
random_state:隨機(jī)狀態(tài)。就是為了保證程序每次運(yùn)行得到的結(jié)果都一樣
axis:抽樣維度,0是行,1是列,默認(rèn)為0
指定需要更新的值
接下來,我們對data_sam1的值進(jìn)行更新,主要是將data_sam1的ounces屬性列值加上后綴'.0 oz',具體代碼如下:
data_sam1['ounces'] = data_sam1['ounces'].astype('str') + '.0 oz'
data_sam1
對data_sam1的值進(jìn)行顯示,其中我們可以看到,ounces的值已經(jīng)全部加上了我們所指定的后綴:

現(xiàn)在,我們已經(jīng)得到的新的值,接下來的目標(biāo)就是如何將我們已經(jīng)得到的新值,更新到data_sam中
append直接添加
從標(biāo)題可以看到,我們使用的是append方法進(jìn)行直接添加。
data_sam = data_sam.append(data_sam1,ignore_index=True) data_sam
我們將data_sam1使用append方法添加到data_sam最后一行的后面。下面展示其結(jié)果,并詳細(xì)介紹append的用法。

可以看到,行數(shù)已經(jīng)有原來的241改為現(xiàn)在的482rows,顯然我們此時(shí)已經(jīng)成功使用append添加數(shù)據(jù)成功。不過我們想要的不止是簡簡單單的添加數(shù)據(jù)在最后一行,而是想要把我們增加后綴的那一列更新到原來的數(shù)據(jù)中,所以最后一步就是去重。
append函數(shù)用法
append()函數(shù)的語法為:
DataFrame.append(other,ignore_index=False,verify_integrity=False,sort=None)
參數(shù)說明:
- other: DataFrame,Series或Dict式對象,其行將添加到調(diào)用方DataFrame中。
- ignore_index: 如果為True,則將忽略源DataFrame對象中的索引。
- verify_integrity:如果為True,則在創(chuàng)建具有重復(fù)項(xiàng)的索引時(shí)引發(fā)ValueError 。
- sort: 如果源DataFrame列未對齊,則對列進(jìn)行排序。 不建議使用此功能。 因此,我們必須傳遞sort=True來排序和靜音警告消息。 如果傳遞了sort=False ,則不會(huì)對列進(jìn)行排序,并且會(huì)忽略警告。
根據(jù)某一列key值進(jìn)行去重(key唯一)
接下來,就是最后一個(gè)步驟,也就是根據(jù)ounces列對數(shù)據(jù)進(jìn)行去重。
通過duplicated()函數(shù)可以看到數(shù)據(jù)還是有很多重復(fù)的。
data_sam.duplicated(['id'],keep='first')

DataFrame.drop_duplicated(self,subset = None,keep ='first')
subset : 列標(biāo)簽或標(biāo)簽序列,可選僅考慮某些列來標(biāo)識重復(fù)項(xiàng),默認(rèn)情況下使用所有列
keep : {'first','last',F(xiàn)alse},默認(rèn)為'first'
first:將重復(fù)項(xiàng)標(biāo)記True為第一次出現(xiàn)的除外。
last:將重復(fù)項(xiàng)標(biāo)記True為最后一次除外。
False:將所有重復(fù)項(xiàng)標(biāo)記為True。
既然知道數(shù)據(jù)中是有重復(fù)項(xiàng)的,通過對數(shù)據(jù)的觀察可以看到,數(shù)據(jù)的id是唯一的,所以我們以id這一列為契機(jī),來進(jìn)行我們的去重操作。具體代碼如下:
data_sam = data_sam.drop_duplicates(subset = 'id') data_sam
最后來看一看,我們最后的結(jié)果是不是已經(jīng)成功去重,或者說是不是我們想要的最終結(jié)果呢???

根據(jù)上面的圖片結(jié)果,可以看到我們已經(jīng)執(zhí)行成功,得到的確實(shí)是我們起初想要的一個(gè)數(shù)據(jù)結(jié)果。有興趣的也可以去試一下merge和update聯(lián)合的操作進(jìn)行更新數(shù)據(jù),看看是不是也能成功。
到此這篇關(guān)于pandas去除重復(fù)值的實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)pandas去除重復(fù)值內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- Python實(shí)戰(zhàn)基礎(chǔ)之Pandas統(tǒng)計(jì)某個(gè)數(shù)據(jù)列的空值個(gè)數(shù)
- Pandas如何對Categorical類型字段數(shù)據(jù)統(tǒng)計(jì)實(shí)戰(zhàn)案例
- Pandas如何將表格的前幾行生成html實(shí)戰(zhàn)案例
- 五個(gè)Pandas?實(shí)戰(zhàn)案例帶你分析操作數(shù)據(jù)
- Python實(shí)戰(zhàn)之利用Geopandas算出每個(gè)省面積
- 機(jī)器學(xué)習(xí)實(shí)戰(zhàn)之knn算法pandas
- pandas實(shí)戰(zhàn):分析三國志人物示例實(shí)現(xiàn)
相關(guān)文章
python 如何利用argparse解析命令行參數(shù)
這篇文章主要介紹了python 利用argparse解析命令行參數(shù)的步驟,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-09-09
python2與python3爬蟲中g(shù)et與post對比解析
這篇文章主要介紹了python2與python3爬蟲中g(shù)et與post對比解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-09-09
python 獲取頁面表格數(shù)據(jù)存放到csv中的方法
今天小編就為大家分享一篇python 獲取頁面表格數(shù)據(jù)存放到csv中的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-12-12
python實(shí)現(xiàn)txt文件格式轉(zhuǎn)換為arff格式
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)txt文件格式轉(zhuǎn)換為arff格式的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Python?GDAL庫在Anaconda環(huán)境中的配置方法
這篇文章主要介紹了Python?GDAL庫在Anaconda環(huán)境中的配置,本文介紹在Anaconda環(huán)境下,安裝Python中柵格、矢量等地理數(shù)據(jù)處理庫GDAL的方法,需要的朋友可以參考下2023-04-04
Python圖片視頻超分模型RealBasicVSR的使用教程
這篇文章主要和大家分享一個(gè)有意思的模型:RealBasicVSR。這個(gè)模型可以實(shí)現(xiàn)圖片或視頻的超分處理,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-05-05
django admin 根據(jù)choice字段選擇的不同來顯示不同的頁面方式
這篇文章主要介紹了django admin 根據(jù)choice字段選擇的不同來顯示不同的頁面方式,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
python使用opencv在Windows下調(diào)用攝像頭實(shí)現(xiàn)解析
這篇文章主要介紹了python使用opencv在Windows下調(diào)用攝像頭實(shí)現(xiàn)解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-11-11

