Считайте файл CSV в Datalab из Google Cloud Storage и преобразуйте его в файл данных pandas

Я пытаюсь прочитать CSV-файл сохранить в GS для данных для анализа

Я следовал следующие шаги без успеха

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

это не работает, так как data_csv не является путем, как ожидалось pd.read_csv Я также пытался

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

Как я могу прочитать мой файл для анализа сделать это?

Спасибо

3 ответа

Решение

%%gcs возвращает байтовые объекты. Чтобы прочитать его, используйте BytesIO из 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 = ';')

если ваш csv-файл разделен запятыми, нет необходимости указывать , который по умолчанию читайте подробнее о библиотеке и пакетах io: основные инструменты для работы с потоками

Вам просто нужно использовать объект uri Свойство, чтобы получить фактический путь:

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

Первая часть вашего кода не работает, потому что pandas ожидает, что данные будут находиться в локальной файловой системе, но вы используете корзину GCS, которая находится в облаке.

Это то, что работает для меня

      df = pd.read_csv(BytesIO(data), encoding='unicode_escape')
Другие вопросы по тегам