跳到内容

Google Sheets (通过 Colab)

Google Colab 提供了一个实用类,用于读取和写入 Google 表格。

打开并读取工作表

我们可以通过使用以下参数初始化 sheets.InteractiveSheet 来打开现有工作表:

  • url 参数,例如 https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms/
  • sheet_id 参数,例如 1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms

默认情况下,将使用最左侧的工作表,我们可以通过提供 worksheet_idworksheet_name 来更改此设置。

在每个会话中首次使用 InteractiveSheet 时,我们需要授予 Colab 权限,使其能够代我们编辑云端硬盘资产。

import polars as pl
from google.colab import sheets
url = "https://docs.google.com/spreadsheets/d/1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms"
sheet = sheets.InteractiveSheet(url=url, backend="polars", display=False)
sheet.as_df()

创建新工作表

如果您未提供电子表格的来源,系统将为您创建一个。

sheet = sheets.InteractiveSheet(title="Colab <3 Polars", backend="polars")

当您传递 df 参数时,数据将立即写入工作表。

df = pl.DataFrame({"a": [1,2,3], "b": ["a", "b", "c"]})
sheet = sheets.InteractiveSheet(df=df, title="Colab <3 Polars", backend="polars")

写入工作表

默认情况下,update 方法将清空工作表并将数据框写入左上角。

sheet.update(df)

我们可以通过 location 参数修改数据写入的位置,并通过 clear 参数控制是否在写入前清空工作表。

sheet.update(df, clear=False)
sheet.update(df, location="D3")
sheet.update(df, location=(3, 4))

在循环中将多个数据框写入工作表的一个好方法是

for i, df in dfs:
  df = pl.select(x=pl.arange(5)).with_columns(pow=pl.col("x") ** i)
  sheet.update(df, loc=(1, i * 3), clear=i == 0)

这将清空工作表,然后将数据框并排写入,每隔五列写入一个。