pandas 和numpy庫處理數(shù)據(jù)(1)

首先寝杖,我們需要引入需要使用的庫蜕着。

import numpy as np
import pandas as pd

除此之外,我們需要讀寫csv文件

from pandas import read_csv

讀取我們的測試數(shù)據(jù)

df=pd.read_csv('data_study.csv')
>>>df
   num  class   name    sex  english  sport  army  math  possity  space
0   10      1   mary  woman       80     80    90  75.0       60     65
1   28      1   land    man       80     50    69  70.0       58     70
2   15      2   asnx    man       80     69    80  75.0       90     94
3   18      4  david    man       90     80    86  85.0       95     62
4   19      2    gry  woman       90     50    64   NaN       64     85
5   20      2  kitty  woman       84     58    97  94.0       63     21
6   14      3   lury  woman       98     77    88   0.0       55     40
7   21      1   facy    man       55     68    94  52.0       36     48

接下來我們將對數(shù)據(jù)進行處理

df.duplicated()#顯示是否重復
df.drop_duplicates()#刪除重復

對于空值進行用0填補

df.fillna(0)

為了數(shù)據(jù)處理惠况,對數(shù)據(jù)進行拷貝

df1=df.copy()
df2=df.copy()

查看數(shù)據(jù)類型并填空不是int的數(shù)據(jù)

>>> for i in ty:
...     if df1[i].dtype=='O':
...         noint.append(i)
... 
>>> 
>>> noint
['name', 'sex']

添加總分

 df2['total_score']=df2['english']+df2['sport']+df2['army']+df2['math']+df2['possity']+df2['space']
df>>> df2
   num  class   name    sex  english  sport  army  math  possity  space  total_score
0   10      1   mary  woman       80     80    90    75       60     65          450
1   28      1   land    man       80     50    69    70       58     70          397
2   15      2   asnx    man       80     69    80    75       90     94          488
3   18      4  david    man       90     80    86    85       95     62          498
4   19      2    gry  woman       90     50    64     0       64     85          353
5   20      2  kitty  woman       84     58    97    94       63     21          417
6   14      3   lury  woman       98     77    88     0       55     40          358
7   21      1   facy    man       55     68    94    52       36     48          353

對數(shù)據(jù)進行分組處理

bins=[df2.total_score.min()-1,400,450,df2.total_score.max()+1]
>>> label=['common','good','perfect']
>>> df2_list=pd.cut(df2.total_score,bins,right=False,labels=label)
>>> df2['catalogy']=df2
df2       df2_list  
>>> df2['catalogy']=df2_list
>>> df2
   num  class   name    sex  english    ...     math  possity  space  total_score  catalogy
0   10      1   mary  woman       80    ...       75       60     65          450   perfect
1   28      1   land    man       80    ...       70       58     70          397    common
2   15      2   asnx    man       80    ...       75       90     94          488   perfect
3   18      4  david    man       90    ...       85       95     62          498   perfect
4   19      2    gry  woman       90    ...        0       64     85          353    common
5   20      2  kitty  woman       84    ...       94       63     21          417      good
6   14      3   lury  woman       98    ...        0       55     40          358    common
7   21      1   facy    man       55    ...       52       36     48          353    common

當然遭庶,除此之外,我們需要進行數(shù)據(jù)的標準化處理

for i in list(df1.columns[4:]):
...    df1[i]=(df1[i]-df1[i].min())/(df1[i].max()-df1[i].min())
... 
>>> df1
   num  class   name    sex   english     sport      army      math   possity     space
0   10      1   mary  woman  0.581395  1.000000  0.787879  0.797872  0.406780  0.602740
1   28      1   land    man  0.581395  0.000000  0.151515  0.744681  0.372881  0.671233
2   15      2   asnx    man  0.581395  0.633333  0.484848  0.797872  0.915254  1.000000
3   18      4  david    man  0.813953  1.000000  0.666667  0.904255  1.000000  0.561644
4   19      2    gry  woman  0.813953  0.000000  0.000000  0.000000  0.474576  0.876712
5   20      2  kitty  woman  0.674419  0.266667  1.000000  1.000000  0.457627  0.000000
6   14      3   lury  woman  1.000000  0.900000  0.727273  0.000000  0.322034  0.260274
7   21      1   facy    man  0.000000  0.600000  0.909091  0.553191  0.000000  0.369863
>>> df1['total_score']=df1['english']+df1['sport']+df1['army']+df1['math']+df1['possity']+df1['space']
>>> df1
   num  class   name    sex   english     sport      army      math   possity     space  total_score
0   10      1   mary  woman  0.581395  1.000000  0.787879  0.797872  0.406780  0.602740     4.176666
1   28      1   land    man  0.581395  0.000000  0.151515  0.744681  0.372881  0.671233     2.521706
2   15      2   asnx    man  0.581395  0.633333  0.484848  0.797872  0.915254  1.000000     4.412704
3   18      4  david    man  0.813953  1.000000  0.666667  0.904255  1.000000  0.561644     4.946519
4   19      2    gry  woman  0.813953  0.000000  0.000000  0.000000  0.474576  0.876712     2.165242
5   20      2  kitty  woman  0.674419  0.266667  1.000000  1.000000  0.457627  0.000000     3.398712
6   14      3   lury  woman  1.000000  0.900000  0.727273  0.000000  0.322034  0.260274     3.209581
7   21      1   facy    man  0.000000  0.600000  0.909091  0.553191  0.000000  0.369863     2.432145
>>> bins=[df1.total_score.min()-1,3,4,df1.total_score.max()+1]
>>> label=['common','good','perfect']
>>> df1_list=pd.cut(df1.total_score,bins,right=False,labels=label)
>>> df1['catalogy']=df1_list
>>> 
>>> df1
   num  class   name    sex   english    ...         math   possity     space  total_score  catalogy
0   10      1   mary  woman  0.581395    ...     0.797872  0.406780  0.602740     4.176666   perfect
1   28      1   land    man  0.581395    ...     0.744681  0.372881  0.671233     2.521706    common
2   15      2   asnx    man  0.581395    ...     0.797872  0.915254  1.000000     4.412704   perfect
3   18      4  david    man  0.813953    ...     0.904255  1.000000  0.561644     4.946519   perfect
4   19      2    gry  woman  0.813953    ...     0.000000  0.474576  0.876712     2.165242    common
5   20      2  kitty  woman  0.674419    ...     1.000000  0.457627  0.000000     3.398712      good
6   14      3   lury  woman  1.000000    ...     0.000000  0.322034  0.260274     3.209581      good
7   21      1   facy    man  0.000000    ...     0.553191  0.000000  0.369863     2.432145    common

以上便是簡單的數(shù)據(jù)處理內容了稠屠。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末峦睡,一起剝皮案震驚了整個濱河市翎苫,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌榨了,老刑警劉巖煎谍,帶你破解...
    沈念sama閱讀 216,402評論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異龙屉,居然都是意外死亡呐粘,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評論 3 392
  • 文/潘曉璐 我一進店門转捕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來作岖,“玉大人,你說我怎么就攤上這事五芝△⒃郏” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評論 0 353
  • 文/不壞的土叔 我叫張陵与柑,是天一觀的道長。 經(jīng)常有香客問我蓄坏,道長价捧,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,165評論 1 292
  • 正文 為了忘掉前任涡戳,我火速辦了婚禮结蟋,結果婚禮上,老公的妹妹穿的比我還像新娘渔彰。我一直安慰自己嵌屎,他們只是感情好,可當我...
    茶點故事閱讀 67,176評論 6 388
  • 文/花漫 我一把揭開白布恍涂。 她就那樣靜靜地躺著宝惰,像睡著了一般。 火紅的嫁衣襯著肌膚如雪再沧。 梳的紋絲不亂的頭發(fā)上尼夺,一...
    開封第一講書人閱讀 51,146評論 1 297
  • 那天,我揣著相機與錄音炒瘸,去河邊找鬼淤堵。 笑死,一個胖子當著我的面吹牛顷扩,可吹牛的內容都是我干的拐邪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,032評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼隘截,長吁一口氣:“原來是場噩夢啊……” “哼扎阶!你這毒婦竟也來了汹胃?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 38,896評論 0 274
  • 序言:老撾萬榮一對情侶失蹤乘陪,失蹤者是張志新(化名)和其女友劉穎统台,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體啡邑,經(jīng)...
    沈念sama閱讀 45,311評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡贱勃,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,536評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了谤逼。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片贵扰。...
    茶點故事閱讀 39,696評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖流部,靈堂內的尸體忽然破棺而出戚绕,到底是詐尸還是另有隱情,我是刑警寧澤枝冀,帶...
    沈念sama閱讀 35,413評論 5 343
  • 正文 年R本政府宣布舞丛,位于F島的核電站,受9級特大地震影響果漾,放射性物質發(fā)生泄漏球切。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,008評論 3 325
  • 文/蒙蒙 一绒障、第九天 我趴在偏房一處隱蔽的房頂上張望吨凑。 院中可真熱鬧,春花似錦户辱、人聲如沸鸵钝。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽恩商。三九已至,卻和暖如春焚鹊,著一層夾襖步出監(jiān)牢的瞬間痕届,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評論 1 269
  • 我被黑心中介騙來泰國打工末患, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留研叫,地道東北人。 一個月前我還...
    沈念sama閱讀 47,698評論 2 368
  • 正文 我出身青樓璧针,卻偏偏與公主長得像嚷炉,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子探橱,可洞房花燭夜當晚...
    茶點故事閱讀 44,592評論 2 353

推薦閱讀更多精彩內容