skillfed

bigframes

BigQuery DataFrames -- scalable analytics and machine learning with BigQuery

bigframes v2.48.0 878.6K downloads/30d#4,826 on PyPI5,373
Permissive license Apache 2.0 Active released

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 bigframes

uv

uv add bigframes

poetry

poetry add bigframes

Installing 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

Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: Apache Software LicenseOperating System :: OS IndependentProgramming Language :: PythonProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.11Programming Language :: Python :: 3.12Programming Language :: Python :: 3.13Programming Language :: Python :: 3.14Topic :: Internet

Tags

pandas api for bigquerybigquery dataframe analyticsscalable machine learning bigquerybigquery python ml apidistributed dataframe processingbigquery ai gemini integrationpandas to bigquery migration
bigquery-integrationdistributed-analyticsgcp-native

More Internet packages