series & 建立 DataFrame 表格

今天要來教大家使用Python裡面一個很好用的套件:Pandas(忘記他的可以點這邊)。回想一下,還記得前陣子教的tuplelistdictionary嗎(這邊這邊)?這幾個原生的資料格式很好用沒錯。但是若要用來進行data science的分析會非常麻煩。所以就有了Pandas這個套件來讓大家可以快速且簡單的利用你手邊的資料。

這邊的教學裡面會用到pandas,所以要在程式的最前面import pandas as pd這個套件,並把這個套件取作pd。接著就可以開始使用pandas拉~

1.Series:

這邊先在l這個變數中儲存list。然後利用pd.Serieslist轉換成Series的形式儲存起來。

l = [1,2,3,'tinycorner',3.14]
s = pd.Series(l)

接著我們來看看變數ls裡面存了什麼啊?可以看到l的確是list的格式,而s呢?就是list重新加入索引值,變成新的檔案格式。為什麼要這樣呢????其實可以想像一下在成功嶺受訓的時候,要穿上很白癡的號碼衣,為什麼要做這個白癡的事情呢?因為大家都是死光頭,分隊長根本搞不清楚誰是誰,所以阿~當穿上號碼衣之後,他就只要叫號碼就好了。Series也是,未來資料量變大的時候,我們需要藉由索引值來找出所要的資料即可。

接著來看看要怎麼利用索引值叫資料出來。

我們只要在儲存的資料後面加上他的索引值就好。所以像是s[3]就會叫出對應的tinycorner字串出來。想像是分隊長叫98號出列,就會有一個穿著98號號碼衣的人很悲慘的出來…

2.DataFrame:

接著才要開始進入Data science的重頭戲—DataFrame,基本上呢,我們的資料是不可能只有一行,最普通最普通的資料至少要有行跟列。所以這邊我們就需要使用DataFrame來完成這樣的需求囉~~

下面就開始實做拉,我們先嘗試看看要怎麼做出一個班級的成績表

name = ['Bob', 'Tom', 'Jason', 'Marry', 'Julia']
subject = ['Chinese', 'Math', 'Science', 'Music', 'PE', 'History']
df = pd.DataFrame(index=name, columns = subject)
df

這邊我先用list儲存namesubject。接著利用DataFrame來創建下面的格式,並且設定變index還有columns分別使用namesubject,並將它存到df當中。大家可以看下面輸出結果,我們要的名字科目的格式就會生成出來啦~

不過大家有沒有發現上面出現了NaN,在Python裡面,若是你沒有把數值存到裡面的話,Python會自動把他記成NaN,代表”沒有”或是”缺失值”,注意喔!!!這邊NaN不等於”0″,舉例來說,你因為生病缺考跟考零分是不一樣的意思。未來TinyCorner也會教如果遇到NaN的話該怎麼處理,這邊我們就把數值給填進去完成這張表吧~

scores = [[ 52,85,96,100,75,54],[40,98,93,54,33,20],[100,97,54,55,100,88],
          [72,67,64,53,87,83],[45,90,100,55,34,96]]
df = pd.DataFrame(scores, index = name, columns = subject)
df

這邊我們使用很多個清單把學生的分數儲存起來,在scores中,有很多個list,每個list都代表一個學生全部科目的分數(也就是每個list會代表一行的資料)。最後再把indexcolumns放上去表格,就是一張漂亮的同學的各科成績資料囉~

好啦~有了成績表之後,接著我會教大家怎麼用使用DataFrame裡面更細部的功能,並看看我們能不能從這張表格裡面挖出什麼有用的資訊吧。

 

 

 

 

Facebook Comments

發表迴響