最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

使用pandas實(shí)現(xiàn)連續(xù)數(shù)據(jù)的離散化處理方式(分箱操作)

 更新時間:2019年11月22日 09:33:41   作者:Backcanhave7  
今天小編就為大家分享一篇使用pandas實(shí)現(xiàn)連續(xù)數(shù)據(jù)的離散化處理方式(分箱操作),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

Python實(shí)現(xiàn)連續(xù)數(shù)據(jù)的離散化處理主要基于兩個函數(shù),pandas.cut和pandas.qcut,前者根據(jù)指定分界點(diǎn)對連續(xù)數(shù)據(jù)進(jìn)行分箱處理,后者則可以根據(jù)指定箱子的數(shù)量對連續(xù)數(shù)據(jù)進(jìn)行等寬分箱處理,所謂等寬指的是每個箱子中的數(shù)據(jù)量是相同的。

下面簡單介紹一下這兩個函數(shù)的用法:

# 導(dǎo)入pandas包
import pandas as pd
ages = [20, 22, 25, 27, 21, 23, 37, 31, 61, 45, 41, 32] # 待分箱數(shù)據(jù)
bins = [18, 25, 35, 60, 100] # 指定箱子的分界點(diǎn)

pandas.cut函數(shù) :

cats1 = pd.cut(ages, bins)
cats1

cats1結(jié)果:

[(18, 25], (18, 25], (18, 25], (25, 35], (18, 25], ..., (25, 35], (60, 100], (35, 60],
(35, 60], (25, 35]]
Length: 12
Categories (4, interval[int64]): [(18, 25] < (25, 35] < (35, 60] < (60, 100]]
# labels參數(shù)為False時,返回結(jié)果中用不同的整數(shù)作為箱子的指示符
cats2 = pd.cut(ages, bins,labels=False) 
cats2 # 輸出結(jié)果中的數(shù)字對應(yīng)著不同的箱子

cats2結(jié)果:

 array([0, 0, 0, 1, 0, 0, 2, 1, 3, 2, 2, 1], dtype=int64)
pd.value_counts(cats1) # 對不同箱子中的數(shù)進(jìn)行計(jì)數(shù)

計(jì)數(shù)結(jié)果:

(18, 25]  5
(35, 60]  3
(25, 35]  3
(60, 100] 1
dtype: int64
pd.cut(ages, [18, 26, 36, 61, 100], right=False) # 指定分箱區(qū)間是左閉右開

改變區(qū)間開閉結(jié)果:

[[18, 26), [18, 26), [18, 26), [26, 36), [18, 26), ..., [26, 36), [61, 100), [36, 61),
[36, 61), [26, 36)]
Length: 12
Categories (4, interval[int64]): [[18, 26) < [26, 36) < [36, 61) < [61, 100)]
# 可以將想要指定給不同箱子的標(biāo)簽傳遞給labels參數(shù)
group_names = ['Youth', 'YoungAdult', 'MiddleAged', 'Senior']
cuts3 = pd.cut(ages, bins, labels=group_names) 
cuts3

cats3結(jié)果:

[Youth, Youth, Youth, YoungAdult, Youth, ..., YoungAdult, Senior, MiddleAged,
MiddleAged, YoungAdult]
Length: 12
Categories (4, object): [Youth < YoungAdult < MiddleAged < Senior]

pandas.qcut函數(shù):

qcats1 = pd.qcut(ages,q=4) # 參數(shù)q指定所分箱子的數(shù)量
qcats1

qcats1結(jié)果:

[(19.999, 22.75], (19.999, 22.75], (22.75, 29.0], (22.75, 29.0], (19.999, 22.75], ...,
(29.0, 38.0], (38.0, 61.0], (38.0, 61.0], (38.0, 61.0], (29.0, 38.0]]
Length: 12
Categories (4, interval[float64]): [(19.999, 22.75] < (22.75, 29.0] < (29.0, 38.0] <
(38.0, 61.0]]
qcats1.value_counts() # 從輸出結(jié)果可以看到每個箱子中的數(shù)據(jù)量時相同的

計(jì)數(shù)結(jié)果:

(19.999, 22.75] 3
(22.75, 29.0]  3
(29.0, 38.0]  3
(38.0, 61.0]  3
dtype: int64

​​​參考:《利用Python進(jìn)行數(shù)據(jù)分析》——Wes McKinney 第二版

以上這篇使用pandas實(shí)現(xiàn)連續(xù)數(shù)據(jù)的離散化處理方式(分箱操作)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

最新評論

怀集县| 修水县| 辽源市| 张家川| 三门县| 黎平县| 宜兰市| 津南区| 娄烦县| 虹口区| 泗水县| 平江县| 建瓯市| 武乡县| 竹北市| 大兴区| 秦安县| 西畴县| 陆河县| 黄浦区| 五峰| 比如县| 彩票| 罗甸县| 翁源县| 大丰市| 太原市| 平南县| 固安县| 衡南县| 靖州| 鄄城县| 张北县| 长顺县| 宝坻区| 石门县| 西城区| 禹城市| 岳普湖县| 长宁县| 临洮县|