06.簡單計算&數(shù)據(jù)標(biāo)準化&數(shù)據(jù)分組

1.簡單計算

指通過已有字段進行四則運算得出新的字段

import pandas
data = pandas.read_csv(
    '/users/bakufu/desktop/4.13/data.csv',
    sep = '|'    
)
Out[3]: 
   name  price  num
0     A   6058  408
1     B   1322  653
2     C   7403  400
3     D   4911  487
4     E   3320   56
5     F   3245  475
6     G   4881  746
7     H   8035  980
8     I   6772  316
9     J   4050  661
10    K   2673  783
11    L   2787  975
12    M   2839  221
13    N    331  480

data['total'] = data.price * data.num
Out[5]: 
   name  price  num    total
0     A   6058  408  2471664
1     B   1322  653   863266
2     C   7403  400  2961200
3     D   4911  487  2391657
4     E   3320   56   185920
5     F   3245  475  1541375
6     G   4881  746  3641226
7     H   8035  980  7874300
8     I   6772  316  2139952
9     J   4050  661  2677050
10    K   2673  783  2092959
11    L   2787  975  2717325
12    M   2839  221   627419
13    N    331  480   158880

2.數(shù)據(jù)標(biāo)準化

指將數(shù)據(jù)按比例縮放转捕,使之落入到特定區(qū)間作岖,用于進行不同變量間的比較分析。

通常在綜合評價分析五芝、聚類分析痘儡、因子分析、主成分分析等分析開展之前枢步,消除各個變量由于量綱不同沉删、自身變異或者數(shù)值相差較大所引起的誤差。

0-1標(biāo)準化計算公式


屏幕快照 2018-07-03 05.32.15.png

將向量中的每個值與所在向量中的最小值的差醉途,除以所在向量中的最大值與向量中最小值的差矾瑰。

可以方便進行十分制與百分制的換算。

import pandas
data = pandas.read_csv(
    '/users/bakufu/desktop/4.14/data.csv'    
)
Out[8]: 
   class name  score
0     一班  朱志斌    120
1     一班   朱鳳    122
2     一班  鄭麗萍    140
3     一班  郭杰明    131
4     一班   許杰    122
5     二班   鄭芬    119
6     二班   林龍     96
7     二班  林良坤    135
8     二班  黃志紅    105
9     三班  方小明    114
10    三班  陳麗靈    115
11    三班  方偉君    136
12    三班  莊藝家    119

#round()函數(shù)是保留多少位小數(shù)的意思隘擎,本例中保留2位小數(shù)
data['scale'] = round(
    (
         data.score - data.score.min()
     )/(
         data.score.max() - data.score.min()
     ),
    2     
)
Out[11]: 
   class name  score  scale
0     一班  朱志斌    120   0.55
1     一班   朱鳳    122   0.59
2     一班  鄭麗萍    140   1.00
3     一班  郭杰明    131   0.80
4     一班   許杰    122   0.59
5     二班   鄭芬    119   0.52
6     二班   林龍     96   0.00
7     二班  林良坤    135   0.89
8     二班  黃志紅    105   0.20
9     三班  方小明    114   0.41
10    三班  陳麗靈    115   0.43
11    三班  方偉君    136   0.91
12    三班  莊藝家    119   0.52

#140分對應(yīng)的標(biāo)準化分數(shù)是1殴穴,是所有學(xué)生中的最高分。
#96分對應(yīng)的標(biāo)準化分數(shù)是0嵌屎,是所有學(xué)生中的最低分推正。

3.數(shù)據(jù)分組

根據(jù)數(shù)據(jù)分析對象的特征,按照一定的數(shù)值指標(biāo)宝惰,把數(shù)據(jù)分析對象劃分為不同的區(qū)間進行研究植榕,以揭示其內(nèi)在的聯(lián)系和規(guī)律性。


屏幕快照 2018-07-03 06.01.35.png

cut函數(shù)cut(series, bins, right=True, labels=NULL)

參數(shù) 注釋
series 需要分組的數(shù)據(jù)
bins 分組的劃分數(shù)組
right 分組的時候尼夺,右邊是否閉合
labels 分組的自定義標(biāo)簽,可以不自定義
import pandas
data = pandas.read_csv(
    '/users/bakufu/desktop/4.15/data.csv',
    sep = '|'        
)
Out[30]: 
             tel   cost
0   166424556600    2.0
1   166424557199    5.0
2   166424561768   75.3
3   166424569696   20.0
4   166424569924   97.3
5   166424579238    3.0
6   166424581334  100.0
7   166424589730   77.0
8   166424591167    5.5
9   166424598020   50.0
10  166424598259   28.6
11  166424606270   10.8
12  166424632819   76.7
13  166424635250   84.6
14  166424641824   10.0

#定義分組區(qū)間
bins = [
    min(data.cost)-1, 20, 40, 60,
    80, 100, max(data.cost)+1
]
Out[32]: [1.0, 20, 40, 60, 80, 100, 101.0]
#分析消費金額的分布情況寝衫,
#此處設(shè)置的最小值和最大值拐邪,并非原始的最小值和最大值慰毅,
#把分組的最小值設(shè)置為數(shù)據(jù)的最小值減一,
#把分組的最大值設(shè)置為數(shù)據(jù)的最大值加一扎阶,
#為什么設(shè)置的開始和結(jié)束值汹胃,是最小值減一和最大值加一,
#因為有時分組的時候犀农,會碰到邊界值,
#即需要分組的值等于最小值或最大值宰掉,
#會導(dǎo)致找不到范圍

#cut函數(shù)進行分組呵哨,如果不自定義標(biāo)簽,
#則默認標(biāo)簽是數(shù)學(xué)的范圍表達式轨奄,
#標(biāo)簽?zāi)J使用左開右閉
data['cut'] = pandas.cut(
    data.cost,
    bins
)
Out[34]: 
             tel   cost            cut
0   166424556600    2.0    (1.0, 20.0]
1   166424557199    5.0    (1.0, 20.0]
2   166424561768   75.3   (60.0, 80.0]
3   166424569696   20.0    (1.0, 20.0]
4   166424569924   97.3  (80.0, 100.0]
5   166424579238    3.0    (1.0, 20.0]
6   166424581334  100.0  (80.0, 100.0]
7   166424589730   77.0   (60.0, 80.0]
8   166424591167    5.5    (1.0, 20.0]
9   166424598020   50.0   (40.0, 60.0]
10  166424598259   28.6   (20.0, 40.0]
11  166424606270   10.8    (1.0, 20.0]
12  166424632819   76.7   (60.0, 80.0]
13  166424635250   84.6  (80.0, 100.0]
14  166424641824   10.0    (1.0, 20.0]

#設(shè)置right=False后變成左閉右開
data['cut'] = pandas.cut(
    data.cost,
    bins,
    right=False
)
Out[36]: 
             tel   cost             cut
0   166424556600    2.0     [1.0, 20.0)
1   166424557199    5.0     [1.0, 20.0)
2   166424561768   75.3    [60.0, 80.0)
3   166424569696   20.0    [20.0, 40.0)
4   166424569924   97.3   [80.0, 100.0)
5   166424579238    3.0     [1.0, 20.0)
6   166424581334  100.0  [100.0, 101.0)
7   166424589730   77.0    [60.0, 80.0)
8   166424591167    5.5     [1.0, 20.0)
9   166424598020   50.0    [40.0, 60.0)
10  166424598259   28.6    [20.0, 40.0)
11  166424606270   10.8     [1.0, 20.0)
12  166424632819   76.7    [60.0, 80.0)
13  166424635250   84.6   [80.0, 100.0)
14  166424641824   10.0     [1.0, 20.0)

#定義分組的標(biāo)簽
labels = [
    '20以下', '20到40', '40到60',
    '60到80', '80到100', '100以上'        
]
Out[38]: 
['20以下', '20到40', 
'40到60', '60到80', 
'80到100', '100以上']

data['cut'] = pandas.cut(
    data.cost, bins,
    right=False, labels=labels        
)
Out[40]: 
             tel   cost     cut
0   166424556600    2.0    20以下
1   166424557199    5.0    20以下
2   166424561768   75.3   60到80
3   166424569696   20.0   20到40
4   166424569924   97.3  80到100
5   166424579238    3.0    20以下
6   166424581334  100.0   100以上
7   166424589730   77.0   60到80
8   166424591167    5.5    20以下
9   166424598020   50.0   40到60
10  166424598259   28.6   20到40
11  166424606270   10.8    20以下
12  166424632819   76.7   60到80
13  166424635250   84.6  80到100
14  166424641824   10.0    20以下
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末贿讹,一起剝皮案震驚了整個濱河市构捡,隨后出現(xiàn)的幾起案子脏里,更是在濱河造成了極大的恐慌球切,老刑警劉巖吨凑,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件户辱,死亡現(xiàn)場離奇詭異,居然都是意外死亡庐镐,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門怠堪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來名眉,“玉大人,你說我怎么就攤上這事损拢。” “怎么了福压?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長哗讥。 經(jīng)常有香客問我,道長杆煞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任队询,我火速辦了婚禮构诚,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘范嘱。我一直安慰自己,他們只是感情好叠聋,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布受裹。 她就那樣靜靜地躺著碌补,像睡著了一般棉饶。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上袜啃,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天岩梳,我揣著相機與錄音,去河邊找鬼冀值。 笑死,一個胖子當(dāng)著我的面吹牛滑蚯,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播告材,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼缰猴!你這毒婦竟也來了疤剑?” 一聲冷哼從身側(cè)響起滑绒,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤疑故,失蹤者是張志新(化名)和其女友劉穎弯菊,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體管钳,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年育瓜,在試婚紗的時候發(fā)現(xiàn)自己被綠了栽烂。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片恋脚。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖怀喉,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情躬拢,我是刑警寧澤见间,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布,位于F島的核電站米诉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏拴泌。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一蚪腐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧宙枷,春花似錦茧跋、人聲如沸慰丛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽讨阻。三九已至芥永,卻和暖如春钝吮,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背棘催。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工耳标, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人呼猪。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓砸琅,卻偏偏與公主長得像,于是被迫代替她去往敵國和親明棍。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容