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

如何在Google Colab中通过gspread将Pandas DataFrame导出至新Google Sheets

在Google Colab中导出Pandas DataFrame到新Google Sheets的解决方案

以下是经过验证的完整流程,解决你无法导出DataFrame的问题:

步骤1:安装依赖库

Colab默认未预装gspread-dataframe,这个库可直接处理DataFrame与Google Sheets的格式转换,避免手动处理单元格的繁琐操作:

!pip install gspread-dataframe

步骤2:完整代码实现

在你已有的授权代码基础上,添加以下代码完成导出:

# 你的已有授权代码
from google.colab import auth
auth.authenticate_user()

import gspread
from google.auth import default
creds, _ = default()
gc = gspread.authorize(creds)

# 新增导入
import pandas as pd
from gspread_dataframe import set_with_dataframe

# 1. 创建测试用的DataFrame(替换成你自己的处理后数据)
df = pd.DataFrame({
    "姓名": ["张三", "李四", "王五"],
    "年龄": [25, 30, 28]
})

# 2. 创建新的Google Sheets文档
new_spreadsheet = gc.create("新导出表格")  # 填写你需要的文档名称

# 3. 给当前授权账号添加文档写入权限(这是多数示例遗漏的关键步骤)
import google.auth
from google.auth.transport.requests import Request
creds, project = google.auth.default()
if not creds.valid:
    creds.refresh(Request())
email = creds.service_account_email if hasattr(creds, 'service_account_email') else creds.quota_project_id
new_spreadsheet.share(email, perm_type='user', role='writer')

# 4. 获取目标工作表(使用默认第一个工作表,或创建新表)
worksheet = new_spreadsheet.sheet1
# 若需创建新工作表:worksheet = new_spreadsheet.add_worksheet(title="数据工作表", rows="1000", cols="20")

# 5. 将DataFrame写入工作表
set_with_dataframe(worksheet, df)

# 可选:打印文档链接,直接跳转查看
print(f"新表格链接:{new_spreadsheet.url}")

关键注意事项

  • 权限配置:创建新文档后必须给授权账号添加写入权限,否则会触发权限错误,这是多数示例失败的核心原因
  • 格式兼容性:set_with_dataframe会自动处理表头、数据类型转换,无需手动拆分表头和数据行
  • 手动转换替代方案:若不想用专用库,可手动将DataFrame转为列表格式写入,但需注意数据类型兼容问题:
    values = [df.columns.tolist()] + df.values.tolist()
    worksheet.update(values)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 12:40:42