将 pandas DataFrame 的内容加载到表中。
代码示例
Python
试用此示例之前,请按照 BigQuery 快速入门:使用客户端库中的 Python 设置说明进行操作。 如需了解详情,请参阅 BigQuery Python API 参考文档。
如需向 BigQuery 进行身份验证,请设置应用默认凭证。如需了解详情,请参阅为客户端库设置身份验证。
import datetime
from zoneinfo import ZoneInfo
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 load_table_dataframe_bigframes(
table_id: str = "your-project.your_dataset.your_table_name",
) -> None:
"""Loads a pandas DataFrame into a BigQuery table using BigQuery DataFrames."""
records = [
{
"title": "The Meaning of Life",
"release_year": 1983,
"length_minutes": 112.5,
"release_date": datetime.datetime(
1983, 5, 9, 13, 0, 0, tzinfo=ZoneInfo("Europe/Paris")
).astimezone(datetime.timezone.utc),
# Assume UTC timezone when a datetime object contains no timezone.
"dvd_release": datetime.datetime(2002, 1, 22, 7, 0, 0),
},
{
"title": "Monty Python and the Holy Grail",
"release_year": 1975,
"length_minutes": 91.5,
"release_date": datetime.datetime(
1975, 4, 9, 23, 59, 2, tzinfo=ZoneInfo("Europe/London")
).astimezone(datetime.timezone.utc),
"dvd_release": datetime.datetime(2002, 7, 16, 9, 0, 0),
},
{
"title": "Life of Brian",
"release_year": 1979,
"length_minutes": 94.25,
"release_date": datetime.datetime(
1979, 8, 17, 23, 59, 5, tzinfo=ZoneInfo("America/New_York")
).astimezone(datetime.timezone.utc),
"dvd_release": datetime.datetime(2008, 1, 14, 8, 0, 0),
},
{
"title": "And Now for Something Completely Different",
"release_year": 1971,
"length_minutes": 88.0,
"release_date": datetime.datetime(
1971, 9, 28, 23, 59, 7, tzinfo=ZoneInfo("Europe/London")
).astimezone(datetime.timezone.utc),
"dvd_release": datetime.datetime(2003, 10, 22, 10, 0, 0),
},
]
dataframe = pd.DataFrame(
records,
# In the loaded table, the column order reflects the order of the
# columns in the DataFrame.
columns=[
"title",
"release_year",
"length_minutes",
"release_date",
"dvd_release",
],
# Optionally, set a named index, which can also be written to the
# BigQuery table.
index=pd.Index(["Q24980", "Q25043", "Q24953", "Q16403"], name="wikidata_id"),
)
bq_df = bpd.read_pandas(dataframe)
bq_df.to_gbq(table_id, if_exists="replace", index=True)
print(f"Loaded DataFrame to {table_id} using BigQuery DataFrames.")
def load_table_dataframe_pandas_gbq(
table_id: str = "your-project.your_dataset.your_table_name",
) -> None:
"""Loads a pandas DataFrame into a BigQuery table using pandas-gbq."""
records = [
{
"title": "The Meaning of Life",
"release_year": 1983,
"length_minutes": 112.5,
"release_date": datetime.datetime(
1983, 5, 9, 13, 0, 0, tzinfo=ZoneInfo("Europe/Paris")
).astimezone(datetime.timezone.utc),
# Assume UTC timezone when a datetime object contains no timezone.
"dvd_release": datetime.datetime(2002, 1, 22, 7, 0, 0),
},
{
"title": "Monty Python and the Holy Grail",
"release_year": 1975,
"length_minutes": 91.5,
"release_date": datetime.datetime(
1975, 4, 9, 23, 59, 2, tzinfo=ZoneInfo("Europe/London")
).astimezone(datetime.timezone.utc),
"dvd_release": datetime.datetime(2002, 7, 16, 9, 0, 0),
},
{
"title": "Life of Brian",
"release_year": 1979,
"length_minutes": 94.25,
"release_date": datetime.datetime(
1979, 8, 17, 23, 59, 5, tzinfo=ZoneInfo("America/New_York")
).astimezone(datetime.timezone.utc),
"dvd_release": datetime.datetime(2008, 1, 14, 8, 0, 0),
},
{
"title": "And Now for Something Completely Different",
"release_year": 1971,
"length_minutes": 88.0,
"release_date": datetime.datetime(
1971, 9, 28, 23, 59, 7, tzinfo=ZoneInfo("Europe/London")
).astimezone(datetime.timezone.utc),
"dvd_release": datetime.datetime(2003, 10, 22, 10, 0, 0),
},
]
dataframe = pd.DataFrame(
records,
# In the loaded table, the column order reflects the order of the
# columns in the DataFrame.
columns=[
"title",
"release_year",
"length_minutes",
"release_date",
"dvd_release",
],
# Optionally, set a named index, which can also be written to the
# BigQuery table.
index=pd.Index(["Q24980", "Q25043", "Q24953", "Q16403"], name="wikidata_id"),
)
pandas_gbq.to_gbq(dataframe, table_id, if_exists="replace")
print(f"Loaded DataFrame to {table_id} using pandas-gbq.")
# [Preferred] Run using BigQuery DataFrames:
# load_table_dataframe_bigframes("your-project.your_dataset.your_table_name")
# Alternatively, run using pandas-gbq:
# load_table_dataframe_pandas_gbq("your-project.your_dataset.your_table_name")后续步骤
如需搜索和过滤其他 Google Cloud 产品的代码示例,请参阅Google Cloud 示例浏览器。