Lea el archivo CSV a Datalab desde Google Cloud Storage y conviértalo a pandas dataframe

Estoy tratando de leer un archivo csv guardado en gs en un dataframe para su análisis

He seguido los siguientes pasos sin éxito.

mybucket = storage.Bucket('bucket-name') data_csv = mybucket.object('data.csv') df = pd.read_csv(data_csv) 

Esto no funciona, ya que data_csv no es una ruta como esperaba pd.read_csv. También probé

 %%gcs read --object $data_csv --variable data #result: %gcs: error: unrecognized arguments: Cloud Storage Object gs://path/to/file.csv 

¿Cómo puedo leer mi archivo para análisis hacer esto?

Gracias

Solo necesitas usar la propiedad uri del objeto para obtener la ruta real:

 uri = data_csv.uri %%gcs read --object $uri --variable data 

La primera parte de su código no funciona porque los pandas esperan que los datos estén en el sistema de archivos local, pero está utilizando un grupo GCS, que está en la nube.

%% gcs devuelve objetos de bytes. Para leerlo usa BytesIO de io (python 3)

 mybucket = storage.Bucket('bucket-name') data_csv = mybucket.object('data.csv') %%gcs read --object $data_csv --variable data df = pd.read_csv(BytesIO(data_csv), sep = ';') 

Si su archivo csv está separado por comas, no es necesario que especifique , que es el valor predeterminado. Lea más sobre la biblioteca y los paquetes de io aquí: Herramientas principales para trabajar con flujos