我正在尝试将 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'))
关于python - 如何将数据帧导出到谷歌云存储桶中的csv,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55365657/