Load a DataFrame to BigQuery with pandas-gbq

Use the pandas-gbq package to load a DataFrame to BigQuery.

Code sample

Python

Before trying this sample, follow the Python setup instructions in the BigQuery quickstart using client libraries. For more information, see the BigQuery Python API reference documentation.

To authenticate to BigQuery, set up Application Default Credentials. For more information, see Set up authentication for client libraries.

import bigframes.pandas as bpd
import pandas as pd
import pandas_gbq

# Set partial ordering mode for BigQuery DataFrames.
bpd.options.bigquery.ordering_mode = "partial"


def pandas_to_gbq_simple_pandas_gbq(
    destination_table: str = "your-project.your_dataset.your_table_name",
) -> None:
    """Uploads a pandas DataFrame to BigQuery using pandas-gbq directly."""
    df = pd.DataFrame(
        {
            "my_string": ["a", "b", "c"],
            "my_int64": [1, 2, 3],
            "my_float64": [4.0, 5.0, 6.0],
            "my_bool1": [True, False, True],
            "my_bool2": [False, True, False],
            "my_dates": pd.date_range("now", periods=3),
        }
    )
    pandas_gbq.to_gbq(df, destination_table, if_exists="replace")
    print(f"Uploaded DataFrame to {destination_table} using pandas-gbq.")


def pandas_to_gbq_simple_bigframes(
    destination_table: str = "your-project.your_dataset.your_table_name",
) -> None:
    """Uploads a pandas DataFrame to BigQuery using BigQuery DataFrames."""
    df = pd.DataFrame(
        {
            "my_string": ["a", "b", "c"],
            "my_int64": [1, 2, 3],
            "my_float64": [4.0, 5.0, 6.0],
            "my_bool1": [True, False, True],
            "my_bool2": [False, True, False],
            "my_dates": pd.date_range("now", periods=3),
        }
    )
    bq_df = bpd.read_pandas(df)
    bq_df.to_gbq(destination_table, if_exists="replace")
    print(f"Uploaded DataFrame to {destination_table} using BigQuery DataFrames.")


# [Preferred] Run using pandas-gbq:
# pandas_to_gbq_simple_pandas_gbq("your-project.your_dataset.your_table_name")

# Alternatively, run using BigQuery DataFrames:
# pandas_to_gbq_simple_bigframes("your-project.your_dataset.your_table_name")

What's next

To search and filter code samples for other Google Cloud products, see the Google Cloud sample browser.