python 資料處理之分箱操作

2021-09-26 14:42:10 字數 1858 閱讀 3363

什麼是分箱?

簡單點說就是將不同的東西,按照特定的條件放到乙個指定容器裡,比如水果 把綠色的放乙個籃子裡,紅色乙個籃子等等,這個籃子就是箱,而水果就是資料 顏色就是條件

什麼樣式的資料要進行分箱

資料主要分為連續變數和分類變數,分箱的操作主要針對於連續變數。

為什麼要對資料進行分箱操作

穩定性,時間複雜度,看的舒服,提高準確度 等等

分箱分為 有監督和無監督

先說有監督,意思就是 個人確定範圍區間

例如,給了一堆年齡資料,你現在自己要把年齡分為[0-20,20-40,40-60-60-80,80-1000000]

這個是根據你個人意願來劃分區間

python 中主要使用cut方法

pandas.cut:

pandas.cut(x, bins, right=true, labels=none, retbins=false, precision=3, include_lowest=false)

引數:x,類array物件,且必須為一維,待切割的原形式

bins, 整數、序列尺度、或間隔索引。如果bins是乙個整數,它定義了x寬度範圍內的等寬面元數量,但是在這種情況下,x的範圍在每個邊上被延長1%,以保證包括x的最小值或最大值。如果bin是序列,它定義了允許非均勻in寬度的bin邊緣。在這種情況下沒有x的範圍的擴充套件。

right,布林值。是否是左開右閉區間

labels,用作結果箱的標籤。必須與結果箱相同長度。如果false,只返回整數指標面元。

retbins,布林值。是否返回面元

precision,整數。返回面元的小數點幾位

include_lowest,布林值。第乙個區間的左端點是否包含

t/cc_jjj/article/details/78878878

import pandas as pd

ages = [20, 22, 25, 27, 21, 23, 37, 31, 61, 45, 41, 32]

# 有一組人員年齡資料,希望將這些資料劃分為「18到25」,「26到35」,「36到60」,「60以上」幾個面元

bins = [18, 25, 35, 60, 100]

# 返回的是乙個特殊的categorical物件 → 一組表示面元名稱的字串

cats = pd.cut(ages, bins)

print(cats)

group_names = ['youth', 'youngadult', 'middleaged', 'senior']###打上標籤

cats1 = pd.cut(ages, bins, labels=group_names)

print(cats1)

aa = pd.value_counts(cats) # 按照區間計數

print(aa)

下面介紹下讓**自己劃分組 -無監督 使用的是qcut方法

data = np.random.randn(1000)

s = pd.series(data)

cats = pd.qcut(s, 4) # 按四分位數進行切割

a = pd.value_counts(cats)

print(a)

qcut() 方法第乙個引數是資料,第二個引數定義區間的分割方法,比如上面 將資料按四分位數進行分割,你也可以按照自己比例進行分割例如[0, 0.5, 1] 相遇55分,四分位還可學成這樣 [0, 0.25, 0.5, 0.75, 1] ,也可以不是均分,比如 [0, 0.1, 0.2, 0.3, 1] ,這就就會按照 1:1:1:7 進行分布

上面這兩種是簡單的使用內建函式進行分箱。

下面介紹cart演算法-最優分箱法

python資料處理包pandas之分組聚合

2.資料聚合 3.分組運算和轉換 分組計算三步曲 拆分 應用 合併拆分 df pd.dataframe 1.1 對series進行分組grouped df data1 groupby df key1 多級分組 df data1 groupby df key1 df key2 mean 1.2 對da...

Python 資料處理

將檔案切分,存入列表 strip split with open james.txt as jaf data jaf.readline james data.strip split 資料檔案為 2 34,3 21,2.34,2.45,3.01,2 01,2 01,3 10,2 22 print ja...

Python 資料處理

本場 chat 為 python 資料處理課程,包括 python 基礎知識 極簡教程 提公升 python 執行效率的方法 爬蟲簡介 scrapy selenium 自動化測試框架 簡易分布式 redis 分詞程式設計 jieba 資料儲存 本地資料上傳 hive 通過本場 chat 讀者可學到以...