You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Google Colab 技术求助:从Google Drive读取Google Sheet并转换为Pandas DataFrame的方法

嘿,我来帮你解决这个问题!你现在的核心问题是用错了gspread.open_by_url()的参数——这个方法需要的是Google Sheet的在线共享链接,而不是你挂载Drive后的本地路径(那个.gsheet其实只是个快捷方式文件,不是实际的表格数据)。

下面是结合你现有代码的完整解决方案,一步步帮你把Sheet数据转成Pandas DataFrame:

完整代码示例

from google.colab import auth
auth.authenticate_user()
import gspread
from oauth2client.client import GoogleCredentials
import pandas as pd
from google.colab import drive

# 授权gspread访问你的Google Sheets资源
gc = gspread.authorize(GoogleCredentials.get_application_default())

# 挂载Drive(这一步其实不是gspread访问Sheet的必需步骤,但保留你的原有操作没问题)
drive.mount('/content/drive', force_remount=True)

# 关键修正:替换成你自己的Google Sheet在线链接
# 打开你的Sheet,复制浏览器地址栏里的链接即可,格式类似下面这样
sheet_online_url = "https://docs.google.com/spreadsheets/d/你的Sheet唯一ID/edit#gid=0"
# 用gspread打开在线Sheet
spreadsheet = gc.open_by_url(sheet_online_url)

# 获取目标工作表:可以用sheet1取第一个表,或者用名称指定比如worksheet("销售数据")
worksheet = spreadsheet.sheet1

# 将Sheet数据转换成Pandas DataFrame
# 获取所有数据行,第一行作为列名,剩余行作为数据
all_data = worksheet.get_all_values()
df = pd.DataFrame(all_data[1:], columns=all_data[0])

# 验证结果
print(df.head())

几个重要说明

  • 关于Sheet链接:你可以直接打开Drive里的Google Sheet,复制浏览器地址栏的完整链接,粘贴到sheet_online_url里就行,不需要用挂载后的本地路径。
  • 替代打开方式:如果你的Sheet名称在Drive里是唯一的,也可以直接用名称打开:spreadsheet = gc.open("myGoogleSheet"),省去复制链接的步骤。
  • 数据转换细节get_all_values()会读取Sheet里的所有内容,包括表头行,所以我们把第一行作为DataFrame的列名,剩下的行作为数据主体,这样生成的DataFrame结构就和你的Sheet完全对应了。

内容的提问来源于stack exchange,提问作者C. Boyer

火山引擎 最新活动