數據處理之數據標準化和數據分組

數據標準化

數據標準化是指讓所有數據等比例縮放,使之落入特定區間便於計算與分析,常用的有0-1標準化,公式爲:

代碼實現如下:

# -*- coding: utf-8 -*-
import pandas as pd
df = pd.read_csv(r"/Users/herenyi/Downloads/4/4.14/data.csv",encoding = 'UTF-8');
df['normalization'] = (df.score-df.score.min())/(df.score.max()-df.score.min())

數據分組

數據分組是指對要分析的數據對象,按照一定的數據區間進行分組,以用來研究內部規律和信息。主要由pandas.cut(x,bins,right=True,labels=None)函數來實現,常用的四個參數分別爲要分組的數據集x,bins代表分組的劃分數組,right代表每個分組右邊是否閉合,默認閉合以及labels爲分組的自定義標籤。
首先還是讀取文件和確定分組。


df = pd.read_csv(r"/Users/herenyi/Downloads/4/4.15/data.csv", sep='|',encoding= 'UTF-8');
bins = [min(df.cost)-1, 20, 40, 60, 80, 100, max(df.cost)+1];

然後開始最基礎的分組,結果如下:

pd.cut(df.cost, bins)
Out[115]: 
0       (1, 20]
1       (1, 20]
2      (60, 80]
3       (1, 20]
4     (80, 100]
5       (1, 20]
6     (80, 100]
7      (60, 80]
8       (1, 20]
9      (40, 60]
10     (20, 40]
11      (1, 20]
12     (60, 80]
13    (80, 100]
14      (1, 20]
Name: cost, dtype: category
Categories (6, object): [(1, 20] < (20, 40] < (40, 60] < (60, 80] < (80, 100] < (100, 101]]

如果右邊不包括,則:

pd.cut(df.cost, bins, right=False)
Out[116]: 
0        [1, 20)
1        [1, 20)
2       [60, 80)
3       [20, 40)
4      [80, 100)
5        [1, 20)
6     [100, 101)
7       [60, 80)
8        [1, 20)
9       [40, 60)
10      [20, 40)
11       [1, 20)
12      [60, 80)
13     [80, 100)
14       [1, 20)
Name: cost, dtype: category
Categories (6, object): [[1, 20) < [20, 40) < [40, 60) < [60, 80) < [80, 100) < [100, 101)]

傳入分組標籤:

labels = ['20以下', '20到40', '40到60', '60到80', '80到100', '100以上']
pd.cut(df.cost, bins, right=False, labels=labels)
Out[119]: 
0       20以下
1       20以下
2      60到80
3      20到40
4     80到100
5       20以下
6      100以上
7      60到80
8       20以下
9      40到60
10     20到40
11      20以下
12     60到80
13    80到100
14      20以下
Name: cost, dtype: category
Categories (6, object): [20以下 < 20到40 < 40到60 < 60到80 < 80到100 < 100以上]
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章