數據標準化
數據標準化是指讓所有數據等比例縮放,使之落入特定區間便於計算與分析,常用的有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以上]