fill_column_nulls
Replace missing values in a specified column with a chosen replacement value to handle incomplete data in datasets.
Instructions
Fill null/NaN values in a specific column with a specified value.
Returns: ColumnOperationResult with fill details
Examples: # Fill missing names with "Unknown" fill_column_nulls(ctx, "name", "Unknown")
# Fill missing ages with 0
fill_column_nulls(ctx, "age", 0)
# Fill missing status with default
fill_column_nulls(ctx, "status", "pending")
# Fill missing scores with -1
fill_column_nulls(ctx, "score", -1)
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| column | Yes | Column name to fill null values in | |
| value | Yes | Value to use for filling null/NaN values |
Implementation Reference
- The handler function that executes the fill_column_nulls tool logic: fills NaN/null values in the specified column with the given value, counts affected rows, and returns a ColumnOperationResult.async def fill_column_nulls( ctx: Annotated[Context, Field(description="FastMCP context for session access")], column: Annotated[str, Field(description="Column name to fill null values in")], value: Annotated[Any, Field(description="Value to use for filling null/NaN values")], ) -> ColumnOperationResult: """Fill null/NaN values in a specific column with a specified value. Returns: ColumnOperationResult with fill details Examples: # Fill missing names with "Unknown" fill_column_nulls(ctx, "name", "Unknown") # Fill missing ages with 0 fill_column_nulls(ctx, "age", 0) # Fill missing status with default fill_column_nulls(ctx, "status", "pending") # Fill missing scores with -1 fill_column_nulls(ctx, "score", -1) """ # Get session_id from FastMCP context session_id = ctx.session_id _session, df = get_session_data(session_id) _validate_column_exists(column, df) # Count nulls before filling nulls_before = int(df[column].isna().sum()) if nulls_before == 0: # No nulls to fill return ColumnOperationResult( operation="fill_nulls", rows_affected=0, columns_affected=[column], ) # Fill null values # Use explicit assignment to avoid downcasting warnings with pd.option_context("future.no_silent_downcasting", True): # noqa: FBT003 filled_series = df[column].fillna(value) if hasattr(filled_series, "infer_objects"): filled_series = filled_series.infer_objects(copy=False) df[column] = filled_series # Verify fills worked nulls_after = int(df[column].isna().sum()) filled_count = nulls_before - nulls_after return ColumnOperationResult( operation="fill_nulls", rows_affected=filled_count, columns_affected=[column], )
- src/databeak/servers/column_text_server.py:536-536 (registration)Registers the fill_column_nulls handler as a tool named 'fill_column_nulls' on the FastMCP column_text_server instance.column_text_server.tool(name="fill_column_nulls")(fill_column_nulls)
- Input schema defined via Annotated types and Pydantic Field descriptions for the tool parameters; output is ColumnOperationResult.ctx: Annotated[Context, Field(description="FastMCP context for session access")], column: Annotated[str, Field(description="Column name to fill null values in")], value: Annotated[Any, Field(description="Value to use for filling null/NaN values")], ) -> ColumnOperationResult: