为了账号安全,请及时绑定邮箱和手机立即绑定

如何将数据帧导出到谷歌云存储桶中的 csv

如何将数据帧导出到谷歌云存储桶中的 csv

牧羊人nacy 2021-12-17 10:05:13
我正在尝试将 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。
查看完整描述

2 回答

?
偶然的你

TA贡献1841条经验 获得超3个赞

当我这样编码时,将文件从 gcloud 导入到数据框工作:


from tensorflow.python.lib.io import file_io

from pandas.compat import StringIO

import pandas as pd


def read_data(gcs_path):

   file_stream = file_io.FileIO(gcs_path, mode='r')

   data = pd.read_csv(StringIO(file_stream.read()), names=['various', 'column', 'names'])

   return data


my_df = read_data('gs://mybucket/data/file.csv')

但我无法逆转这个过程。


然而,GCS 对我有用:


import google.cloud.storage as gcs


client = gcs.Client()

bucket = client.bucket('my-bucket')

blobs = list(bucket.list_blobs(prefix='data/'))


my_df.to_csv('tmp.csv')

local_tmp_path = ('tmp.csv')

target_blob = bucket.blob('data/file.csv')

target_blob.upload_from_file(open(local_tmp_path, 'r'))


查看完整回答
反对 回复 2021-12-17
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

您可以将 csv 文件保存在您的 VM 中,然后用于gsutil将其保存在您的存储桶中。

Python:

my_df.to_csv("data.csv")

壳:

gsutil data.csv gs://my_bucket/


查看完整回答
反对 回复 2021-12-17
  • 2 回答
  • 0 关注
  • 155 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信