第三章使用pandas作為主要操作的函式庫,並搭配numpy作為輔助,為了方便查看操作後的結果,額外使用了rich函式庫作為輸出用。
以下為兩個重複使用的Function作為輸出標準,可快速查看每個向量或陣列的基本資訊。
Dataframe可以使用python的Dictionary類型進行創建,並且新增新的column時可透過指定column的名稱與list直接新增(這邊使用另外一個dataframe進行印出)
輸出結果
若要查看dataframe的Dimensions可使用shape方法,詳細資訊可使用describe方法印出
輸出結果
若要指定特定範圍的row或是透過特殊內容指定該row,則可透過iloc方法印出
輸出結果
若需要更加明確的限制來選擇內容,則可以直接在其中使用指定限制的表達式來選取指定的內容
輸出結果
若要排序特定column中的內容,可使用sort_values的方法來指定column名稱與要依照遞增或是遞減的方式進行排列
輸出結果
若要取代指定內容,可使用replace方法進行取代,同時可以指定特定column中的內容,或是全部符合條件的內容。
輸出結果
若要取得原始Dataframe中的預設column名稱,可透過collection函式庫中的defaultdict來將所有column的名稱存於一個變數中
若要更改column的名稱,可使用remane方法對指定的column進行更改
輸出結果
若要尋找指定column中的特定值(如最大值、最小值、均值或總和等),可直接使用min、mean、sum、count等方法印出
輸出結果
若要尋找指定column中不同的值,可使用unique方法印出詳細不同的值,而value_counts則可以幫助將每一種不同的值出現的次數印出;最簡略的方式是使用nunique方法,其可直接印出在指定的column中有幾種不同的值
輸出結果
若想要將指定內容取代為特定值,可使用replace方法,而NaN值在原始的python或pandas中都沒有支援,故使用numpy中的nan代替
若想要在載入dataframe時就尋找特定值轉為NaN,則可以在read_csv或其他同等載入函數中加上na_values選項,將指定的值設為NaN
要尋找NaN值可以透過使用isnull或是isna方法尋找,可再透過fillna方式將指定範圍內的NaN值替換為其餘指定值
輸出結果
若要刪除指定的column,可使用drop方法,並將axis設為1,即可刪除指定的單個或多個column。若不確定名稱,也可以透過直接使用columns[]來指定第幾個column
輸出結果
若要刪除row,則需先指定刪除row的條件,以及將axis設為0,即可刪除指定條件的row(這邊只有將要刪除的部分印出,沒有實際刪除)
輸出結果
若要刪除指定範圍內重複的內容,可使用drop_duplicate方法,在沒有特別設定的情況下,會刪除所有重複的內容,但若只要保留一份,則可在drop_duplicate中加上keep選項為last避免刪除所有重複內容。
若單純想要查看特定範圍內是否有重複的內容,則可使用duplicated方法進行查看
輸出結果
若想要將特定內容組建群組,則可使用groupby方法(此處使用'Sex'的column作為分組,並只留下其餘純數字的column實行mean操作)
同時可指定要使用哪個column作為分組依據,並計算其值(如下方使用'Survived'作為分組依據,並使用'Name'作為計數標準)
也可以使用list來指定column的分組依據,可以進行分組後再分組的功能(list前方為主要分組、後方為次要分組)
輸出結果
基於時間軸的dataframe可以透過先使用date_range方法進行創建index,其中第一個選項可以指定開始的時間、periods選項可指定資料長度、freq選項可指定每個資料的間隔(時間)。再透過pd.Dataframe中的index選項將其創建為dataframe
若想要已指定時間段作為區分,可使用resample方法隔開指定時間段的內容,而其中的label選項可以選擇要從資料最左端開始切分或是最右端開始切分
輸出結果
若想要一次取得每個column中的特殊值,可以使用agg方法,同時也可以指定多項內容與要取得的特殊值
輸出結果
若要在指定範圍內循環獲取某項內容,可以使用單純的for loop撰寫並指定資料的範圍
輸出結果
若想要將指定的function套用於dataframe中的每一個元素,可以使用apply方法,下方為套用之function
輸出結果
若想要套用function至分組中,只需要透過groupby再使用apply即可套用至每一個元素
輸出結果
若要整合兩個不同的dataframe,但column名稱皆相同,則可以使用concat方法,其中的axis選項若設為0,則會直接在對應column中新增row;若將axis設為1,則會直接將兩個dataframe的column加在一起
輸出結果
若要將兩個不同的Dataframe(有相同的column)整合在一起,可以使用merge方法,其中的on選項為指定要整合的column。但若沒有額外設定,則只會回傳有整合的部分,若要連同在另外一個Dataframe中不存在的部分也一起整合起來,則需要使用how選項設為outer
輸出結果