【发布时间】:2019-03-26 20:23:46
【问题描述】:
我正在尝试将 pandas 数据帧导出到我的谷歌云存储存储桶中的 csv 文件,但以下代码显然不适合我:
my_df.to_csv(StringIO(file_io.FileIO('gs://mybucket/data/file.csv', mode='w+')))
这应该如何重写?我收到以下错误:
unbound method write() must be called within FileIO instance as first argument (got nothing instead)
如果答案很明显,我很抱歉,但我才刚刚开始学习 python。
【问题讨论】:
-
您的 CSV 是否具有可存储的内存大小?如果是,您显然可以从 python 的字符串向 GCS 写入一个新对象。如果您的数据太大,您可以将其写入本地文件,然后从 API 上传文件。不要将 GCS 与文件系统混淆。
-
我专门尝试确定如何使用 StringIO 和 FileIO 将文件导出到 gcloud 存储桶。我仔细阅读的这里提供的其他解决方案都没有提供解决方案。我成功地使用这些将 gcloud 上的 csv 导入数据帧,所以我认为在另一个方向上做同样的事情不会太复杂。我确实设法让 gcs 工作,所以我将在下面发布我是如何做到的,以供其他可能想知道的人使用。
标签: python file-io google-cloud-platform export-to-csv stringio