運用邏輯判斷進行資料篩選,這也是資料處理中重要的環節。 資料清理時經常會需要篩選或是排除某些條件下的資料,最簡單的例子就是當原始資料的年齡為 0-99 歲時,但所需要用於後續分析的資料只需留下 20-30 歲的數據時,就需要用到邏輯判斷進行資料篩選。 一般在 SAS 上會使用 IF+ 邏輯條件來進行判斷, python 則較為不同,以下分別做示範。 以 SAS 進行邏輯判斷 單一條件,篩選出性別為男性的資料 data id_m; set id; if gender= "M" ; run ; /* 用保留的邏輯判斷留下性別為男性的資料 */ (1) 大小寫:這邊要注意欄位裡面的 coding 方式, 大小寫有差別 ,如果寫成 if gender= "m" ,那這樣不會留下我們想要的資料了。 (2) 文字欄位條件,需要加上 雙引號 。 也可以用排除的方式留下資料 : data id_m; set id; if gender= "F" then delete ; run ; /* 用排除的方式保留資料 */ 這兩種寫法都可以,但是在某些情況下結果會有差異,當我們很確認欄位的 coding 只有 F 跟 M 時,這兩個寫法得到的結果會相同,但如果欄位中有其他 coding 或是 missing value 時,後面的寫法只會將性別 coding 為 F 的資料排除,所以如果裡面包含 missing value 則會一同被留下,所以使用上大家依據需求採用最恰當的寫法。 多重條件,篩選出性別為男性且年齡 <50 的資料 data id_m; set id; if gender= "M" and age< 50 ; run ; 利用 and 或 or 連接多個條件,進行邏輯判斷。 以 Python 進行邏輯判斷 單一條件,篩選出性別為男性的資料 id_m=id_list[id_list["Gender"].isin(["M"])] 不過 pandas 中只有 isin 指令,所以如果是要用排除的方式就必須要繞路執行,先把要做判斷的