remove_columns
Remove specified columns from a dataframe to clean data, reduce dataset size, or eliminate unnecessary variables for analysis.
Instructions
Remove columns from the dataframe.
Returns: ColumnOperationResult with removal details
Examples: # Remove single column remove_columns(ctx, ["temp_column"])
# Remove multiple columns
remove_columns(ctx, ["col1", "col2", "col3"])
# Clean up after analysis
remove_columns(ctx, ["_temp", "_backup", "old_value"])
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| columns | Yes | List of column names to remove from the dataframe |
Implementation Reference
- The main handler function that executes the remove_columns tool: validates columns exist, drops them from the dataframe using pandas, updates the session dataframe, and returns a structured result.async def remove_columns( ctx: Annotated[Context, Field(description="FastMCP context for session access")], columns: Annotated[ list[str], Field(description="List of column names to remove from the dataframe"), ], ) -> ColumnOperationResult: """Remove columns from the dataframe. Returns: ColumnOperationResult with removal details Examples: # Remove single column remove_columns(ctx, ["temp_column"]) # Remove multiple columns remove_columns(ctx, ["col1", "col2", "col3"]) # Clean up after analysis remove_columns(ctx, ["_temp", "_backup", "old_value"]) """ # Get session_id from FastMCP context session_id = ctx.session_id session, df = get_session_data(session_id) # Validate columns exist missing_cols = [col for col in columns if col not in df.columns] if missing_cols: raise ColumnNotFoundError(str(missing_cols[0]), df.columns.tolist()) session.df = df.drop(columns=columns) # No longer recording operations (simplified MCP architecture) return ColumnOperationResult( operation="remove", rows_affected=len(df), columns_affected=columns, )
- Pydantic schema for the output response of the remove_columns tool (shared across column operations). Defines fields like operation='remove', rows_affected, columns_affected.class ColumnOperationResult(BaseToolResponse): """Response model for column operations (add, remove, rename, etc.).""" operation: str = Field(description="Type of operation performed") rows_affected: int = Field(description="Number of rows affected by operation") columns_affected: list[str] = Field(description="Names of columns affected") original_sample: list[CsvCellValue] | None = Field( default=None, description="Sample values before operation", ) updated_sample: list[CsvCellValue] | None = Field( default=None, description="Sample values after operation", ) # Additional fields for specific operations part_index: int | None = Field(default=None, description="Part index for split operations") transform: str | None = Field(default=None, description="Transform description") nulls_filled: int | None = Field(default=None, description="Number of null values filled") rows_removed: int | None = Field( default=None, description="Number of rows removed (for remove_duplicates)", ) values_filled: int | None = Field( default=None, description="Number of values filled (for fill_missing_values)", )
- src/databeak/servers/column_server.py:656-656 (registration)Registers the remove_columns handler function as the MCP tool named 'remove_columns' on the FastMCP column_server instance.column_server.tool(name="remove_columns")(remove_columns)