トップ / Null処理

na.fill(fillna)

NULL(欠損)を指定した値で埋める。

SNOWPARK 静的検証のみ

df.na.fill({"age": 0, "status": "unknown"})

POLARS 実行確認済み

ldf.with_columns(pl.col("age").fill_null(0), pl.col("status").fill_null(pl.lit("unknown")))

挙動・設計の違い

Snowparkは列名と埋める値の辞書をna.fill()に渡し、対応するSQLに展開される。Polarsは列ごとに.fill_null()with_columnsへ並べる。書き方は違うが、狙いは同じ「指定した列のNULLだけを値で置き換える」。

移行時の落とし穴

【Polars 側の落とし穴】整数列に浮動小数点数で埋めると、エラーにならずに型が変わる。Polars で整数列(i64)にfill_null(0.0)のような浮動小数点数を渡すと、例外を出さずに列全体の型がこっそりf64へ変わる(Polars 1.43.2 で実行して確認)。「型エラーで気づける」と思っていると危険で、後続の処理で誤差や想定外の桁が出てから気づくことになりやすい。整数列を保ちたいときは、埋める値の型(00.0か)を明示的に意識する。

Null処理の他のメソッド

出典・検証情報

Polars 1.43.2 で実行確認 / Snowpark Python SDK 1.54.0 で静的検証(2026-08-25)