You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将DataFrame的dtypes转换为字典列表用作BigQuery表schema?

Pandas DataFrame 转 BigQuery Schema 实现方案

核心逻辑

先建立Pandas数据类型到BigQuery标准数据类型的映射规则,之后遍历DataFrame的所有列,按规则批量生成符合要求的字典列表即可,支持任意列数的DataFrame快速转换。

实现代码

import pandas as pd

# Pandas dtype 到 BigQuery 数据类型的映射规则,可按需扩展
TYPE_MAPPING = {
    "object": "STRING",
    "int64": "INTEGER",
    "Int64": "INTEGER",
    "float64": "FLOAT",
    "Float64": "FLOAT",
    "bool": "BOOLEAN",
    "boolean": "BOOLEAN",
    "datetime64[ns]": "TIMESTAMP",
    "datetime64[ns, UTC]": "TIMESTAMP",
    "timedelta64[ns]": "TIME"
}

def generate_bq_schema(df: pd.DataFrame) -> list[dict]:
    schema = []
    for col_name, dtype in df.dtypes.items():
        # 匹配不到的类型默认转为STRING,避免报错
        bq_type = TYPE_MAPPING.get(str(dtype), "STRING")
        schema.append({"name": col_name, "type": bq_type})
    return schema

# 调用示例
# 替换为你自己的DataFrame变量即可
# bq_schema = generate_bq_schema(your_df)

注意事项

  • 如果业务需要使用STRUCT、JSON、BYTES等特殊BigQuery类型,直接在TYPE_MAPPING中补充对应Pandas类型的映射即可
  • 建议生成schema后抽验几列的类型是否符合预期,避免部分混合类型的列被误映射为STRING
  • 生成的结果可直接传入to_gbq方法、BigQuery Python客户端的建表/load接口使用,无需额外调整

内容的提问来源于stack exchange,提问作者Basley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 22:09:03