如何在Google Cloud ML上使用pandas.read_csv?

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

我正在尝试在Google Cloud ML上部署培训脚本。当然,我已将数据集(CSV文件)上传到GCS的存储桶中。

我曾经用pandas的read_csv导入我的数据,但它似乎不能用于GCS路径。

我该怎么办(我想继续使用熊猫)?

import pandas as pd
data = pd.read_csv("gs://bucket/folder/file.csv")

输出:

ERROR 2018-02-01 18:43:34 +0100 master-replica-0 IOError: File gs://bucket/folder/file.csv does not exist
python pandas google-cloud-storage google-cloud-ml
3个回答
3
投票

您将需要使用tensorflow.python.lib.io中的file_io来执行此操作,如下所示:

from tensorflow.python.lib.io import file_io
from pandas.compat import StringIO
import pandas as pd

# read the input data
def read_data(gcs_path):
   print('downloading csv file from', gcs_path)     
   file_stream = file_io.FileIO(gcs_path, mode='r')
   data = pd.read_csv(StringIO(file_stream.read()))
   return data

现在调用上面的函数

 df = read_data('gs://bucket/folder/file.csv')
 # print(df.head()) # display top 5 rows including headers

1
投票

Pandas没有本机GCS支持。有两种选择:1。使用gsutil cli将文件复制到VM 2.使用TensorFlow file_io库打开文件,并将文件对象传递给pd.read_csv()。请参阅详细的答案here


0
投票

您也可以使用Dask提取数据,然后将数据加载到GCP上运行的Jupyter Notebook中。

确保已安装Dask。

conda install dask #conda
pip install dask[complete] #pip

import dask.dataframe as dd #Import 

dataframe = dd.read_csv('gs://bucket/datafile.csv') #Read CSV data
dataframe2 = dd.read_csv('gs://bucket/path/*.csv') #Read parquet data

这就是加载数据所需的全部内容。

您现在可以使用Pandas语法过滤和操作数据。

dataframe['z'] = dataframe.x + dataframe.y

dataframe_pd = dataframe.compute()

© www.soinside.com 2019 - 2024. All rights reserved.