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

问题描述 投票:0回答:1

我正在尝试将pandas数据框导出到我的Google云存储中的存储桶中的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。

python file-io google-cloud-platform export-to-csv stringio
1个回答
0
投票

当我编码时,将文件从gcloud导入到dataframe:

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'))
© www.soinside.com 2019 - 2024. All rights reserved.