bigframes
BigQuery DataFrames -- scalable analytics and machine learning with BigQuery
What it is and what it does
BigFrames is a Python library that translates pandas-like DataFrame operations and scikit-learn-style ML calls into BigQuery SQL, executing them server-side on Google's managed infrastructure. It bridges the gap between local pandas workflows and cloud-scale analytics by letting developers write familiar Python code while leveraging BigQuery's distributed compute engine.
The package includes three main APIs: bigframes.pandas for analytics (compatible with many pandas workloads), bigframes.ml for supervised and unsupervised learning (modeled after scikit-learn), and bigframes.bigquery.ai for AI methods powered by Gemini. It depends on the full Google Cloud Python ecosystem—BigQuery client, Storage, Functions, IAM, and authentication libraries—plus data science foundations like pandas, numpy, pyarrow, and geospatial tools (geopandas, shapely). Setup requires a GCP project, BigQuery API enablement, and Application Default Credentials.
Use it for:
- Migrate existing pandas analytics code to BigQuery by changing imports, scaling to datasets too large for local memory.
- Build and train ML models (linear regression, classification, clustering) on BigQuery data without exporting to a separate ML platform.
- Perform geospatial analysis on large datasets using geopandas-compatible operations backed by BigQuery compute.
- Combine structured analytics with Gemini AI methods for feature engineering, predictions, or text analysis on BigQuery tables.
- Prototype analytics in a notebook, then deploy the same code to production with BigQuery as the execution engine.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
BigFrames provides a pandas-compatible DataFrame API and scikit-learn-like ML interface that executes queries and computations on BigQuery, letting you scale analytics and machine learning workloads without leaving Python.
Yes, if you have a GCP project with BigQuery and need to scale pandas-like analytics or train ML models on large datasets without managing infrastructure. The active maintenance, permissive license, and low install friction support adoption. No if you lack GCP access, work entirely with small local datasets, or need full pandas API coverage—some operations may not be supported or may require workarounds.
Install
bigframes on PyPI
pip
pip install bigframesuv
uv add bigframespoetry
poetry add bigframesInstalling bigframes
Before you install
Low install friction with a pure-wheel distribution. Active maintenance with a release 2 days old and 5373 repository stars. Requires 31 runtime dependencies including the full Google Cloud ecosystem (BigQuery, Storage, Functions, IAM), plus data science libraries (pandas, numpy, pyarrow, geopandas, shapely).
License in practice
Apache 2.0 permissive license allows commercial use, modification, and distribution with minimal restrictions. Code incorporates third-party material from Ibis, pandas, scikit-learn, XGBoost, and SQLGlot, all compatible with permissive licensing.
Quickstart
pip install bigframes
import bigframes.pandas as bpd
bpd.options.bigquery.project = 'your-gcp-project'
df = bpd.read_gbq('bigquery-public-data.usa_names.usa_1910_2013')
result = df.groupby('name').agg({'number': 'sum'}).head(10).to_pandas()
Requires GCP project with BigQuery API enabled and Application Default Credentials configured for authentication.
Verify before relying
- Performance characteristics and query optimization behavior compared to direct BigQuery SQL or pandas on local data.
- Extent of pandas API compatibility—which methods/parameters are fully supported vs. emulated or unsupported.
- Pricing impact of BigQuery compute and storage when scaling analytics workloads via BigFrames.
- Maturity and stability of the Gemini AI integration in bigframes.bigquery.ai.
Package facts
| License | Apache 2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 31 — cloudpickle, fsspec, gcsfs, geopandas, google-auth, google-cloud-bigquery, google-cloud-bigquery-storage, google-cloud-functions, google-cloud-bigquery-connection, google-cloud-resource-manager, google-cloud-storage, google-crc32c, grpc-google-iam-v1, numpy, pandas, pandas-gbq, pyarrow, pydata-google-auth, requests, shapely, tabulate, humanize, matplotlib, db-dtypes, pyiceberg, atpublic, python-dateutil, pytz, toolz, typing-extensions |
| Maintenance | actively maintained — 2 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 878,643/month — #4,826 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: bigframes-2.48.0-py2.py3-none-any.whl
Tags
More Internet packages
Botocore provides low-level, data-driven access…
permissive · top 100 on PyPI
aiobotocoreProvides an async client for AWS services using…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
filelockProvides a platform-independent file locking…
permissive · top 100 on PyPI
fastapiFastAPI is a Python web framework for building…
permissive · top 100 on PyPI
googleapis-common-protosProvides common Protocol Buffer message…
permissive · top 100 on PyPI
cloudsearchWrapper for AWS CloudSearch that simplifies…
permissive · top 15,000 on PyPI
pandas-gbqpandas-gbq reads data from Google BigQuery into…
permissive · top 1,000 on PyPI
google-cloud-bigqueryPython client library for querying and managing…
permissive · top 1,000 on PyPI
ibis-frameworkIbis is a portable Python dataframe library…
permissive · top 5,000 on PyPI
skrubskrub prepares and transforms dataframes for…
permissive · top 15,000 on PyPI
pandasqlpandasql lets you query pandas DataFrames using…
unclear · top 5,000 on PyPI
bigquery-magicsProvides IPython magic commands to query Google…
permissive · top 15,000 on PyPI
db-dtypesProvides pandas extension data types for SQL…
permissive · top 1,000 on PyPI
dune-clientA Python client for querying and managing Dune…
permissive · top 15,000 on PyPI
dataframe-api-compatProvides a lightweight compatibility layer that…
permissive · top 15,000 on PyPI