iPAS 考題解析研究團隊接下來想要將Year欄位轉換為整數型態,以便後續進行年份趨勢分析。考慮到資料中可能包含缺失值(NaN),請選出最合適的轉換方式。 A) data['Year'] = data['Year'].astype(int) B) data['Year'] = data['Year'].fillna(0).astype(int) C) data['Year'] = data['Year'].fillna(1).astype(int) D) data['Year'] = data['Year'].astype('Int64')
你的作答
在題目頁作答不會存進學習紀錄,想留下紀錄可以到題庫練習。
解析
正確答案:D. data['Year'] = data['Year'].astype('Int64')
pandas的 'Int64'(大寫I)是可空整數型態(Nullable Integer),可以在保留NaN的同時將欄位轉換為整數型態,不需要先填補缺失值。astype(int)在有NaN時會報錯,fillna填補假值(0或1)會扭曲分析。
每個選項為什麼對或錯
-
A data['Year'] = data['Year'].astype(int) 錯誤選項
astype(int)在有NaN的欄位上會拋出ValueError,無法執行。
-
B data['Year'] = data['Year'].fillna(0).astype(int) 錯誤選項
fillna(0)填補缺失年份為0,會在趨勢分析中產生1970年之前的假資料,扭曲結果。
-
C data['Year'] = data['Year'].fillna(1).astype(int) 錯誤選項
fillna(1)填補缺失年份為西元1年,同樣會產生不合理的假資料。
-
D data['Year'] = data['Year'].astype('Int64') 正解
astype('Int64')使用pandas可空整數型態,保留NaN同時轉換為整數,是最合適的方法。
答案、題目或解析有問題?回報這題