人妖在线一区,国产日韩欧美一区二区综合在线,国产啪精品视频网站免费,欧美内射深插日本少妇

新聞動態(tài)

Python教程pandas數(shù)據(jù)分析去重復值

發(fā)布日期:2022-01-03 10:34 | 文章來源:站長之家

加載數(shù)據(jù)

首先,我們需要加載到所需要的數(shù)據(jù),這里我們所需要的數(shù)據(jù)是同過sample函數(shù)采樣過來的。

import pandas as pd 
#這里說明一下,clean_beer.csv數(shù)據(jù)有兩千多行數(shù)據(jù)
#所以從其中采樣一部分,來進行演示,當然可以簡單實用data.head()也可以做練習
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ù)進行采樣,并將結(jié)果賦值給data_sam1,其中data_sam和data_sam1是后續(xù)我們需要用到的兩個數(shù)據(jù)(因為需要將兩個數(shù)據(jù)合并,并去除重復)

此時,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:是否放回,默認是不放回,如果有放回(replace=True)可以選擇比df長度更多的元素回來

weights:樣本權(quán)重,自動歸一化,可以以某一列為權(quán)重

random_state:隨機狀態(tài)。就是為了保證程序每次運行得到的結(jié)果都一樣

axis:抽樣維度,0是行,1是列,默認為0

指定需要更新的值

接下來,我們對data_sam1的值進行更新,主要是將data_sam1的ounces屬性列值加上后綴'.0 oz',具體代碼如下:

data_sam1['ounces'] = data_sam1['ounces'].astype('str') + '.0 oz'
data_sam1

對data_sam1的值進行顯示,其中我們可以看到,ounces的值已經(jīng)全部加上了我們所指定的后綴:

現(xiàn)在,我們已經(jīng)得到的新的值,接下來的目標就是如何將我們已經(jīng)得到的新值,更新到data_sam中

append直接添加

從標題可以看到,我們使用的是append方法進行直接添加。

data_sam = data_sam.append(data_sam1,ignore_index=True)
data_sam

我們將data_sam1使用append方法添加到data_sam最后一行的后面。下面展示其結(jié)果,并詳細介紹append的用法。

可以看到,行數(shù)已經(jīng)有原來的241改為現(xiàn)在的482rows,顯然我們此時已經(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ā)ValueError 。

sort: 如果源DataFrame列未對齊,則對列進行排序。 不建議使用此功能。 因此,我們必須傳遞sort=True來排序和靜音警告消息。 如果傳遞了sort=False ,則不會對列進行排序,并且會忽略警告。

根據(jù)某一列key值進行去重(key唯一)

接下來,就是最后一個步驟,也就是根據(jù)ounces列對數(shù)據(jù)進行去重。
通過duplicated()函數(shù)可以看到數(shù)據(jù)還是有很多重復的。

data_sam.duplicated(['id'],keep='first')

DataFrame.drop_duplicated(self,subset = None,keep ='first')
subset : 列標簽或標簽序列,可選僅考慮某些列來標識重復項,默認情況下使用所有列
keep : {'first','last',F(xiàn)alse},默認為'first'
		first:將重復項標記True為第一次出現(xiàn)的除外。
		last:將重復項標記True為最后一次除外。
		False:將所有重復項標記為True。

既然知道數(shù)據(jù)中是有重復項的,通過對數(shù)據(jù)的觀察可以看到,數(shù)據(jù)的id是唯一的,所以我們以id這一列為契機,來進行我們的去重操作。具體代碼如下:

data_sam = data_sam.drop_duplicates(subset = 'id')
data_sam

最后來看一看,我們最后的結(jié)果是不是已經(jīng)成功去重,或者說是不是我們想要的最終結(jié)果呢???

根據(jù)上面的圖片結(jié)果,可以看到我們已經(jīng)執(zhí)行成功,得到的確實是我們起初想要的一個數(shù)據(jù)結(jié)果。有興趣的也可以去試一下merge和update聯(lián)合的操作進行更新數(shù)據(jù),看看是不是也能成功。

以上就是Python教程pandas數(shù)據(jù)分析的詳細內(nèi)容,希望通過記錄能夠加強記憶,并幫到和我一樣正在學習的你,更多關于pandas數(shù)據(jù)分析去重復值的資料請關注本站其它相關文章!感謝閱讀~

版權(quán)聲明:本站文章來源標注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務器上建立鏡像,否則將依法追究法律責任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學習參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。

相關文章

實時開通

自選配置、實時開通

免備案

全球線路精選!

全天候客戶服務

7x24全年不間斷在線

專屬顧問服務

1對1客戶咨詢顧問

在線
客服

在線客服:7*24小時在線

客服
熱線

400-630-3752
7*24小時客服服務熱線

關注
微信

關注官方微信
頂部