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

如何从Google Sheets导入多数据集到Pandas DataFrame并解决重复问题

解决Google Sheets多数据集导入问题

问题根源

你遇到的核心问题是重复使用了未重新赋值的工作表变量,或是导入第二个表格时未正确指定新的表格ID与目标工作表。你的第一段代码里甚至缺失了worksheet变量的定义(比如worksheet = sheet.get_worksheet(0)或worksheet = sheet.worksheet("工作表名称")),后续导入时若未重新定义对应第二个表格的worksheet,自然会复用之前的数据集。

修复方案:模块化导入逻辑

把导入逻辑封装成函数,每次导入新表格时传入对应表格ID和工作表名称/索引,彻底避免变量复用问题:

import gspread
import pandas as pd
from google.oauth2.service_account import Credentials

# 初始化认证(只需执行一次)
scopes = ["https://www.googleapis.com/auth/spreadsheets"]
creds = Credentials.from_service_account_file("你的API密钥文件名.json", scopes=scopes)
client = gspread.authorize(creds)

def import_sheet_to_df(sheet_id, worksheet_name_or_index):
    """
    导入指定Google表格的工作表为DataFrame
    :param sheet_id: Google表格的ID(从URL中提取)
    :param worksheet_name_or_index: 工作表名称(字符串)或索引(从0开始计数)
    :return: 对应数据集的DataFrame
    """
    sheet = client.open_by_key(sheet_id)
    if isinstance(worksheet_name_or_index, int):
        worksheet = sheet.get_worksheet(worksheet_name_or_index)
    else:
        worksheet = sheet.worksheet(worksheet_name_or_index)
    return pd.DataFrame(worksheet.get_all_records())

# 导入第一个数据集
faculty_df = import_sheet_to_df("第一个表格的ID", "教职工数据表")
# 导入第二个数据集
students_df = import_sheet_to_df("第二个表格的ID", 0)  # 用索引0表示表格的第一个工作表

更简洁的替代方案:直接用pandas读取

如果你的Google表格已设置为公开可查看(或通过认证权限可访问),可以跳过gspread,直接用pandas读取表格的CSV导出链接:

import pandas as pd

def import_sheet_to_df(sheet_id, worksheet_gid):
    # worksheet_gid可从表格URL的gid参数中获取
    url = f"https://docs.google.com/spreadsheets/d/{sheet_id}/export?format=csv&gid={worksheet_gid}"
    return pd.read_csv(url)

# 示例导入
faculty_df = import_sheet_to_df("第一个表格ID", 12345678)
students_df = import_sheet_to_df("第二个表格ID", 98765432)

关键注意事项

  • 确保每个表格的ID正确(从Google Sheets URL的d/[表格ID]/部分提取)
  • 使用服务账号认证时,需将服务账号邮箱添加为对应表格的协作者
  • 若工作表名称含特殊字符,优先使用索引或gid参数获取工作表

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 08:20:02