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

如何在Colab中将Pandas DataFrame正确保存至Google Drive为CSV文件?

解决Colab中将Pandas DataFrame保存到Google Drive的问题

我明白你的困扰——明明能在Colab本地看到生成的文件,却在Drive里找不到,大文件转存还直接失效,确实挺棘手的。咱们一步步拆解问题,给出靠谱的解决方案:

核心问题分析

你之前的尝试踩了几个典型的坑:

  • 直接用df.to_csv("file_path\data.csv")时,路径用了Windows风格的反斜杠\,但Colab是Linux环境,必须用正斜杠/;而且这个路径指向的是Colab的本地临时存储,并非你挂载的Google Drive目录,自然在Drive里找不到。
  • 临时文件转存时用f.read()读取大文件,会把10万行的完整数据一次性加载到内存,很容易触发内存溢出,导致保存失败。

正确解决方案

方案1:直接挂载Drive后用Pandas写入(最推荐)

这是最简单高效的方式,不管文件大小都能直接处理,只要确保挂载和路径无误:

  1. 先确认Google Drive已正确挂载(如果还没挂载,运行这段代码):
from google.colab import drive
drive.mount('/content/drive')

运行后会弹出授权链接,按提示完成账号授权即可完成挂载。

  1. 提前创建目标目录(避免Pandas因为目录不存在静默失败):
import os

# 替换成你实际要保存的Drive路径
target_dir = '/content/drive/MyDrive/Datatourisme/tests_automatisation'
if not os.path.exists(target_dir):
    os.makedirs(target_dir)
  1. 直接用Pandas的to_csv写入Drive路径:
# 假设你的DataFrame变量名为df
df.to_csv(os.path.join(target_dir, 'data.csv'), index=False)

os.path.join自动拼接路径能避免手动写斜杠出错;index=False可以避免把DataFrame的索引列写入CSV,根据你的需求调整即可。

方案2:大文件逐行拷贝(备选,针对特殊场景)

如果你因为某些限制必须用临时文件转存,别再一次性读取整个文件,改用逐行拷贝的方式,内存占用极低,超大文件也能轻松处理:

import shutil

# Colab本地临时文件路径
tmp_path = '/content/data_tmp.csv'
# Google Drive目标路径
target_path = '/content/drive/MyDrive/Datatourisme/tests_automatisation/data.csv'

# 先将DataFrame写入本地临时文件
df.to_csv(tmp_path, index=False)

# 逐行拷贝,避免内存溢出
with open(tmp_path, 'r') as f_in, open(target_path, 'w') as f_out:
    shutil.copyfileobj(f_in, f_out)

shutil.copyfileobj会自动处理逐行读写,内存占用几乎可以忽略,10万行的文件完全没问题。

验证方式

保存完成后,你可以在Colab左侧面板的/content/drive/MyDrive路径下找到文件,同时刷新Google Drive网页端,就能看到生成的CSV文件了。

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

火山引擎 最新活动