こんにちは,shun(@datasciencemore)です!!
今回はfill_nullについて学習していきます.
fill_nullは,欠損値を指定した値に置換するメソッドです.
イメージとしてはこのようになります.
データフレームに置換後の値を指定してfill_nullを適用すると,欠損値を指定した値に置換します.
この例だと置換後の値を0と設定しているので,欠損値が0に置換されています.
置換後の値の指定方法は,主に2つあります.
1つ目は,引数をvalueとする方法です.
引数をvalueとすると,置換後の値を直接指定することができます.
引数valueは省略することができます.
また,シリーズで指定することもできます.
2つ目は,引数をstrategyとする方法です.
引数をstrategyとすると,様々な方法で欠損値を置換します。
例えば
- mean:各列の平均で置換
- forward:欠損値の上の値で置換
- backward:欠損値の下の値で置換
などが挙げられます。
0.準備
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
# パッケージ読み込み import numpy as np import polars as pl # データフレームの表示行数を指定 pl.Config.set_tbl_rows(5) # データフレーム定義 df = pl.DataFrame( { "x":[1, 3, 2, 8, 10], "y":[10, 4, None, 6, None], "z":[None, 8, 7, 8, None] } ) |
1.value:置換後の値を直接指定
1 2 |
# 欠損値を0に置換 df.fill_null(value=0) |
1 2 |
# 欠損値を0に置換 (value省略) df.fill_null(0) |
1 2 3 4 5 6 |
# y列の欠損値を5に,z列の欠損値を3に置換 df.select( "x", pl.col("y").fill_null(5), pl.col("z").fill_null(3) ) |
2.strategy:置換後の値を計算して補完
1 2 |
# 欠損値を各列の平均で置換 df.fill_null(strategy="mean") |
1 2 3 4 |
# 欠損値を各列の平均で置換(intをfloatに変換) df\ .with_columns(pl.all().cast(pl.Float64))\ .fill_null(strategy="mean") |
1 2 |
# 欠損値の上の値で置換 df.fill_null(strategy="forward") |
1 2 |
# 欠損値の下の値で置換 df.fill_null(strategy="backward") |
まとめ
今回はfill_nullについて学習してきました.
fill_nullは,欠損値を指定した値に置換するメソッドです.
引数にvalueかstrategyを設定することで,柔軟に置換後の値を指定することが出来ます.
さて,これで欠損値処理の説明が終了となり,晴れてpolars編が終了となります.
polarsは,データ分析のメインパッケージの中でも一番よく使用するパッケージです.
なので,学習すべき事項もとてもたくさんあります.
1回では絶対に習得できないので,何回も復習しましょう!
それでは,お疲れさまでした!!