データ分析実践
初級問題チェック
問題 25 /40
欠損値に関して、誤った結果はどれか。
選択 1
pd.Series([1, None, 2]).dtype
▶︎
float64
選択 2
np.nan == np.nan
▶︎
False
選択 3
pd.Series([1, None, 2]).sum()
▶︎
3.0
選択 4
pd.Series([1, None, 2]).cusum(skipna=False)
▶︎
0 1.0
1 NaN
2 3.0
解説
選択肢4が正解です。
【選択肢1】
pd.Series([1, None, 2]).dtype
▶︎
float64
正しい結果です。
int型やbool型のデータに欠損値が含まれていると、自動でfloat型に型変換されます。
【選択肢2】
np.nan == np.nan
▶︎
False
正しい結果です。
NaN同士の比較演算はFalseが返ります。
【選択肢3】
pd.Series([1, None, 2]).sum()
▶︎
3.0
正しい結果です。
データを集計する場合、欠損値は0として扱われます。
skipna=Falseの引数をつけると、NaNをNaNとして扱います。NaNを含む四則演算はNaNが返ります。
pd.Series([1, None, 2]).sum(skipna=False)
▶︎
nan
【選択肢4】
pd.Series([1, None, 2]).cusum(skipna=False)
▶︎
0 1.0
1 NaN
2 3.0
誤った結果です。
cumsumメソッドなどの累積演算は、欠損値によって累積演算がリセットされることを防ぐため、デフォルトでNaNを無視します。
pd.Series([1, None, 2]).cusum()
▶︎
0 1.0
1 NaN
2 3.0
skipna=Falseの引数をつけると、NaNをNaNとして扱います。NaNを含む四則演算はNaNが返るため、NaN以降の結果はNaNになります。
pd.Series([1, None, 2]).cusum(skipna=False)
▶︎
0 1.0
1 NaN
2 NaN
(公式書籍 p.188-192)