--- title: "Polars" sidebarTitle: "Polars & Arrow" --- import { PyPlatformsPolarsCreateTable, PyPlatformsPolarsImports, PyPlatformsPolarsLazyframe, PyPlatformsPolarsPydantic, PyPlatformsPolarsVectorSearch, } from '/snippets/integrations.mdx'; LanceDB supports [Polars](https://github.com/pola-rs/polars), a blazingly fast DataFrame library for Python written in Rust. Under the hood, both Lance and Polars speak Arrow, so passing data back and forth stays zero-copy and ergonomic. ## Create and Query a Table {#create-and-query-a-table} Import the required libraries, including the optional Pydantic helpers if you plan to define schemas. {PyPlatformsPolarsImports} Build a Polars `DataFrame`, convert it to Arrow, and use it directly when creating a LanceDB table. {PyPlatformsPolarsCreateTable} Run vector search and keep the results as a Polars `DataFrame` for further processing or visualization. {PyPlatformsPolarsVectorSearch} ## Work with LazyFrames {#work-with-lazyframes} When you want to operate on the entire table (potentially larger than RAM), convert to a Polars `LazyFrame` so you can chain transformations without loading everything at once. {PyPlatformsPolarsLazyframe} ## Define Schemas with Pydantic {#define-schemas-with-pydantic} You can also describe your table via `LanceModel` and continue ingesting data from Polars. This is useful when multiple teams share a schema or when you want validation. {PyPlatformsPolarsPydantic}