我正在尝试将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。
当我编码时,将文件从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'))