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

标签 python file-io google-cloud-platform export-to-csv stringio

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

相关文章:

python - 文件输入输出python保存文件

比较两个文件的普通数和单个数

hadoop - 在 Google Cloud Dataproc 上运行 xgboost

python - 如何在不使用估计器的情况下为训练的 Tensorflow 模型编写服务输入函数?

python - 在列表中查找数字递增(具有不同增量)的组

python - 如何在浏览器中显示 linux 日志文件中的行

MATLAB 数据解析优化

python - 修改具有日期偏移量的数据框

javascript - Spidermonkey 中的 JSON 序列化

google-cloud-platform - Terraform - GCP - 连接 : connection refused