一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - pandas去除重復值的實戰

pandas去除重復值的實戰

2022-01-06 00:43sharon@zhang Python

本文主要介紹了pandas去除重復值的實戰,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

 

加載數據

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

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

此時,data_sam和data_sam1的數據是一樣的。

data_sam數據

data_sam

pandas去除重復值的實戰

data_sam1數據

data_sam1

pandas去除重復值的實戰

 

sample抽樣函數

簡要介紹一下sample函數

df.sample()就是抽樣函數,參數如下:

df.sample(n=None,frac=None,replace=Flase,weights=None,random_state=None,axis=None)

參數說明:

**n:**就是樣本量,如果不寫,就是抽一條數據

**frac:**抽樣比,就是樣本量占全樣本的比例,如frac=0.3 ,注意n和frac不能共存

replace:是否放回,默認是不放回,如果有放回(replace=True)可以選擇比df長度更多的元素回來

weights:樣本權重,自動歸一化,可以以某一列為權重

random_state:隨機狀態。就是為了保證程序每次運行得到的結果都一樣

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的值已經全部加上了我們所指定的后綴:

pandas去除重復值的實戰

現在,我們已經得到的新的值,接下來的目標就是如何將我們已經得到的新值,更新到data_sam中

 

append直接添加

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

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

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

pandas去除重復值的實戰

可以看到,行數已經有原來的241改為現在的482rows,顯然我們此時已經成功使用append添加數據成功。不過我們想要的不止是簡簡單單的添加數據在最后一行,而是想要把我們增加后綴的那一列更新到原來的數據中,所以最后一步就是去重。

 

append函數用法

append()函數的語法為:

DataFrame.append(other,ignore_index=False,verify_integrity=False,sort=None)

參數說明:

  • other: DataFrame,Series或Dict式對象,其行將添加到調用方DataFrame中。
  • ignore_index: 如果為True,則將忽略源DataFrame對象中的索引。
  • verify_integrity:如果為True,則在創建具有重復項的索引時引發ValueError 。
  • sort: 如果源DataFrame列未對齊,則對列進行排序。 不建議使用此功能。 因此,我們必須傳遞sort=True來排序和靜音警告消息。 如果傳遞了sort=False ,則不會對列進行排序,并且會忽略警告。

 

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

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

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

pandas去除重復值的實戰

DataFrame.drop_duplicated(self,subset = None,keep ="first")

subset : 列標簽或標簽序列,可選僅考慮某些列來標識重復項,默認情況下使用所有列
keep : {"first","last",False},默認為"first"
		first:將重復項標記True為第一次出現的除外。
		last:將重復項標記True為最后一次除外。
		False:將所有重復項標記為True。

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

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

最后來看一看,我們最后的結果是不是已經成功去重,或者說是不是我們想要的最終結果呢???

pandas去除重復值的實戰

根據上面的圖片結果,可以看到我們已經執行成功,得到的確實是我們起初想要的一個數據結果。有興趣的也可以去試一下merge和update聯合的操作進行更新數據,看看是不是也能成功。

到此這篇關于pandas去除重復值的實戰的文章就介紹到這了,更多相關pandas去除重復值內容請搜索服務器之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持服務器之家!

原文鏈接:https://blog.csdn.net/baidu_41797613/article/details/120304952

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲色图影院 | 精品亚洲欧美中文字幕在线看 | 日本在线视频免费看 | 日本漫画无翼乌 | 日本无遮挡吸乳视频看看 | chinese壮直男gay老年人 | 国产拍拍拍免费专区在线观看 | 99久久国产综合精品女小说 | 欧美精品v日韩精品v国产精品 | 亚洲免费闲人蜜桃 | 91高清国产经典在线观看 | 国产免费资源高清小视频在线观看 | 99re8在线精品视频免费播放 | 亚洲 欧美 国产 在线 日韩 | 成人高清网站 | 午夜影院网页 | 久久伊人电影 | 国产图色 | 亚洲AV中文字幕无码久久 | 无码骚夜夜精品 | bbbxxx乱大交欧美小说 | 色花堂中文字幕98堂网址 | 青久久 | 91香蕉视频网址 | 精品一产品大全 | 精品国产自在现线拍国语 | 插入粉嫩| 爽好舒服使劲添高h视频 | 亚洲成人网导航 | 四虎国产成人亚洲精品 | 日韩在线免费 | 538免费精品视频搬运工 | 97国产蝌蚪视频在线观看 | 日本中文字幕不卡在线一区二区 | 午夜福利理论片高清在线 | 久久电影院久久国产 | 67id人成观看免费 | 欧美理论片手机在线观看片免费 | 日本高清中文字幕视频在线 | 国产亚洲精品一区在线播 | 女人和拘做受全过程免费 |