使用 BigQuery DataFrames 操纵数据
本文档介绍了 BigQuery DataFrames 中提供的数据操纵功能。您可以在 bigframes.bigquery 库中找到本文档中介绍的函数。
所需的角色
如需获得完成本文档中的任务所需的权限,请让您的管理员为您授予项目的以下 IAM 角色:
-
BigQuery Job User (
roles/bigquery.jobUser) -
BigQuery Read Session User (
roles/bigquery.readSessionUser) -
在 BigQuery 笔记本中使用 BigQuery DataFrames:
-
BigQuery User (
roles/bigquery.user) -
Notebook Runtime User (
roles/aiplatform.notebookRuntimeUser) -
Code Creator (
roles/dataform.codeCreator)
-
BigQuery User (
如需详细了解如何授予角色,请参阅管理对项目、文件夹和组织的访问权限。
您也可以通过自定义 角色或其他预定义 角色来获取所需的权限。
在笔记本、Python REPL 或命令行等交互式环境中执行最终用户身份验证时,BigQuery DataFrames 会根据需要提示进行身份验证。 否则,请参阅 如何为各种环境设置应用默认凭证 。
pandas API
BigQuery DataFrames 的一个显著特点是,
bigframes.pandas API
的设计与 pandas 库中的 API 类似。这种设计让您可以使用熟悉的语法模式来执行数据操纵任务。通过 BigQuery DataFrames API 定义的操作在服务器端执行,直接对存储在 BigQuery 中的数据进行操作,无需将数据集移出 BigQuery。
如需查看 BigQuery DataFrames 支持哪些 pandas API,请参阅 支持的 pandas API。
检查和操纵数据
您可以使用 bigframes.pandas API 执行数据检查和计算操作。以下代码示例使用 bigframes.pandas
库检查 body_mass_g 列,计算平均 body_mass,以及
按 species 计算平均 body_mass:
BigQuery 库
BigQuery 库提供 BigQuery SQL 函数,这些函数可能没有 pandas 等效函数。以下部分提供了一些示例。
处理数组值
您可以使用 bigframes.bigquery.array_agg() 函数在
bigframes.bigquery 库中在 groupby 操作后聚合值:
您还可以使用 array_length() 和 array_to_string() 数组函数。
创建结构体 Series 对象
您可以使用 bigframes.bigquery 库中的 bigframes.bigquery.struct() 函数创建新的结构体 Series 对象,其中包含 DataFrame 中每个列的子字段:
将时间戳转换为 Unix 纪元时间
您可以使用 bigframes.bigquery.unix_micros() 函数将时间戳转换为 Unix 微秒:bigframes.bigquery
您还可以使用 unix_seconds() 和 unix_millis() 时间函数。
使用 SQL 标量函数
您可以使用 bigframes.bigquery.sql_scalar() 函数访问表示
单列表达式的任意 SQL 语法:bigframes.bigquery
后续步骤
- 了解 BigQuery DataFrames 的自定义 Python 函数 。
- 了解如何 使用 Gemini 生成 BigQuery DataFrames 代码。
- 了解如何 使用 BigQuery DataFrames 分析通过 PyPI 进行的软件包下载情况。
- 在 GitHub 上查看 BigQuery DataFrames 源代码、 示例笔记本和 示例 。
- 探索 BigQuery DataFrames API 参考文档。