繁体   English   中英

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

[英]How to export dataframe to csv in bucket on google cloud

我正在尝试将 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。

当我这样编码时,将文件从 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'))

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

Python:

my_df.to_csv("data.csv")

贝壳:

gsutil data.csv gs://my_bucket/

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM