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