




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第Pandas對數(shù)值進(jìn)行分箱操作的4種方法總結(jié)目錄前言1、betweenloc2、cut3、qcut4、value_counts
前言
使用Pandas的between、cut、qcut和value_count離散化數(shù)值變量。
分箱是一種常見的數(shù)據(jù)預(yù)處理技術(shù)有時也被稱為分桶或離散化,他可用于將連續(xù)數(shù)據(jù)的間隔分組到箱或桶中。在本文中,我們將討論使用pythonPandas庫對數(shù)值進(jìn)行分箱的4種方法。
我們創(chuàng)建以下合成數(shù)據(jù)用于演示
import
pandas
as
pd
#
version
1.3.5
import
numpy
as
np
def
create_df():
df
=
pd.DataFrame({'score':
np.random.randint(0,101,1000)})
return
df
create_df()
df.head()
數(shù)據(jù)包括1000名學(xué)生的0到100分的考試分?jǐn)?shù)。而這次的任務(wù)是將數(shù)字分?jǐn)?shù)分為值A(chǔ)、B和C的等級,其中A是最好的等級,C是最差的等級。
1、betweenloc
Pandas.between方法返回一個包含True的布爾向量,用來對應(yīng)的Series元素位于邊界值left和right之間。
參數(shù)有下面三個:
left:左邊界right:右邊界inclusive:要包括哪個邊界??山邮艿闹禐閧both、neither、left、right}。
根據(jù)以下間隔規(guī)則將學(xué)生的分?jǐn)?shù)分為等級:
A:(80,100]B:(50,80]C:[0,50]
其中方括號[和圓括號)分別表示邊界值是包含的和不包含的。我們需要確定哪個分?jǐn)?shù)在感興趣的區(qū)間之間,并為其分配相應(yīng)的等級值。注意看下面的不同的參數(shù)表示是否包含邊界
df.loc[df['score'].between(0,
50,
'both'),
'grade']
=
'C'
df.loc[df['score'].between(50,
80,
'right'),
'grade']
=
'B'
df.loc[df['score'].between(80,
100,
'right'),
'grade']
=
'A'
以下是每個分?jǐn)?shù)區(qū)間的人數(shù):
df.grade.value_counts()
C488
B310
A202
Name:grade,dtype:int64
此方法需要為每個bin編寫處理的代碼,因此它僅適用于bin很少的情況。
2、cut
可以使用cut將值分類為離散的間隔。此函數(shù)對于從連續(xù)變量到分類變量也很有用。
cut的參數(shù)如下:
x:要分箱的數(shù)組。必須是一維的。bins:標(biāo)量序列:定義允許非均勻?qū)挾鹊腷in邊緣。labels:指定返回的bin的標(biāo)簽。必須與上面的bins參數(shù)長度相同。include_lowest:(bool)第一個區(qū)間是否應(yīng)該是左包含的。
bins
=
[0,
50,
80,
100]
labels
=
['C',
'B',
'A']
df['grade']
=
pd.cut(x
=
df['score'],
bins
=
bins,
labels
=
labels,
include_lowest
=
True)
這樣就創(chuàng)建一個包含bin邊界值的bins列表和一個包含相應(yīng)bin標(biāo)簽的標(biāo)簽列表。
查看每個區(qū)段的人數(shù)
df.grade.value_counts()
C488
B310
A202
Name:grade,dtype:int64
結(jié)果與上面示例相同。
3、qcut
qcut可以根據(jù)排名或基于樣本分位數(shù)將變量離散為大小相等的桶[3]。
在前面的示例中,我們?yōu)槊總€級別定義了分?jǐn)?shù)間隔,這回使每個級別的學(xué)生數(shù)量不均勻。在下面的示例中,我們將嘗試將學(xué)生分類為3個具有相等(大約)數(shù)量的分?jǐn)?shù)等級。示例中有1000名學(xué)生,因此每個分箱應(yīng)該有大約333名學(xué)生。
qcut參數(shù):
x:要分箱的輸入數(shù)組。必須是一維的。q:分位數(shù)。10表示十分位數(shù),4表示四分位數(shù)等。也可以是交替排列的分位數(shù),例如[0,.25,.5,.75,1.]四分位數(shù)。labels:指定bin的標(biāo)簽。必須與生成的bin長度相同。retbins:(bool)是否返回(bins,labels)。
df['grade'],
cut_bin
=
pd.qcut(df['score'],
q
=
3,
labels
=
['C',
'B',
'A'],
retbins
=
True)
df.head()
(cut_bin)
[
0.
36.
68.
100.]
分?jǐn)?shù)間隔如下:
C:[0,36]B:(36,68]A:(68,100]
使用.value_counts()檢查每個等級有多少學(xué)生。理想情況下,每個箱應(yīng)該有大約333名學(xué)生。
df.grade.value_counts()
C340
A331
B329
Name:grade,dtype:int64
4、value_counts
雖然pandas.value_counts通常用于計算系列中唯一值的數(shù)量,但它也可用于使用bins參數(shù)將值分組到半開箱中。
df['score'].value_counts(bins
=
3,
sort
=
False)
默認(rèn)情況下,.value_counts按值的降序?qū)Ψ祷氐南盗羞M(jìn)行排序。將sort設(shè)置為False以按其索引的升序?qū)ο盗羞M(jìn)行排序。
(-0.101,33.333]310
(33.333,66.667]340
(66.667,100.0]350
Name:score,dtype:int64
series索引是指每個bin的區(qū)間范圍,其中方括號[和圓括號)分別表示邊界值是包含的和不包含的。返回series的值表示每個bin中有多少條記錄。
與.qcut不同,每個bin中的記錄數(shù)不一定相同(大約)。.value_counts不會將相同數(shù)量的記錄分配到相同的類別中,而是根據(jù)最高和最低分?jǐn)?shù)將分?jǐn)?shù)范圍分成3個相等的部分。分?jǐn)?shù)的最小值為0,最大值為100,因此這3個部分中的每一個都大約在33.33范圍內(nèi)。這也解釋了為什么bin的邊界是33.33的倍數(shù)。
我們還可以通過傳入邊界列表來定義bin邊界。
df['score'].value_counts(bins
=
[0,50,80,100],
sort
=
False)
(-0.001,50.0]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年環(huán)境科學(xué)綜合素質(zhì)考試題及答案
- it工程師面試題簡答題及答案
- 2025年物流管理與供應(yīng)鏈考試試題及答案
- 素質(zhì)能力測試題庫及答案
- java面試題及答案練習(xí)軟件
- 2025年建筑工程管理相關(guān)知識考試試題及答案
- 軟件設(shè)計師考試時間管理試題及答案
- 軟件設(shè)計師考試學(xué)習(xí)資源與試題答案
- 項目管理師的跨部門協(xié)作技巧試題及答案
- 西方政治參與模式的革新試題及答案
- DB32/T 4220-2022消防設(shè)施物聯(lián)網(wǎng)系統(tǒng)技術(shù)規(guī)范
- 車位轉(zhuǎn)讓合同協(xié)議書
- 合伙經(jīng)營貨車輛協(xié)議書
- 2025年農(nóng)村個人果園承包合同
- 湖北省武漢市2025屆高三年級五月模擬訓(xùn)練試題數(shù)學(xué)試題及答案(武漢五調(diào))
- 企業(yè)管理流程數(shù)字化轉(zhuǎn)型計劃
- 機(jī)械通氣患者護(hù)理
- 2025年數(shù)控技術(shù)專業(yè)畢業(yè)考試試題及答案
- 車牌租賃協(xié)議和抵押合同
- 《張敏瑞的傳奇人生》課件
評論
0/150
提交評論