Path: blob/main/docs/source/src/python/user-guide/expressions/missing-data.py
7890 views
# --8<-- [start:dataframe]1import polars as pl23df = pl.DataFrame(4{5"value": [1, None],6},7)8print(df)9# --8<-- [end:dataframe]101112# --8<-- [start:count]13null_count_df = df.null_count()14print(null_count_df)15# --8<-- [end:count]161718# --8<-- [start:isnull]19is_null_series = df.select(20pl.col("value").is_null(),21)22print(is_null_series)23# --8<-- [end:isnull]242526# --8<-- [start:dataframe2]27df = pl.DataFrame(28{29"col1": [0.5, 1, 1.5, 2, 2.5],30"col2": [1, None, 3, None, 5],31},32)33print(df)34# --8<-- [end:dataframe2]353637# --8<-- [start:fill]38fill_literal_df = df.with_columns(39pl.col("col2").fill_null(3),40)41print(fill_literal_df)42# --8<-- [end:fill]4344# --8<-- [start:fillexpr]45fill_expression_df = df.with_columns(46pl.col("col2").fill_null((2 * pl.col("col1")).cast(pl.Int64)),47)48print(fill_expression_df)49# --8<-- [end:fillexpr]5051# --8<-- [start:fillstrategy]52fill_forward_df = df.with_columns(53pl.col("col2").fill_null(strategy="forward").alias("forward"),54pl.col("col2").fill_null(strategy="backward").alias("backward"),55)56print(fill_forward_df)57# --8<-- [end:fillstrategy]5859# --8<-- [start:fillinterpolate]60fill_interpolation_df = df.with_columns(61pl.col("col2").interpolate(),62)63print(fill_interpolation_df)64# --8<-- [end:fillinterpolate]6566# --8<-- [start:nan]67import numpy as np6869nan_df = pl.DataFrame(70{71"value": [1.0, np.nan, float("nan"), 3.0],72},73)74print(nan_df)75# --8<-- [end:nan]7677# --8<-- [start:nan-computed]78df = pl.DataFrame(79{80"dividend": [1, 0, -1],81"divisor": [1, 0, -1],82}83)84result = df.select(pl.col("dividend") / pl.col("divisor"))85print(result)86# --8<-- [end:nan-computed]8788# --8<-- [start:nanfill]89mean_nan_df = nan_df.with_columns(90pl.col("value").fill_nan(None).alias("replaced"),91).select(92pl.all().mean().name.suffix("_mean"),93pl.all().sum().name.suffix("_sum"),94)95print(mean_nan_df)96# --8<-- [end:nanfill]979899