如何将我的csv从google dataLab加载到pandas数据框?

Cy *_* Bu 6 google-cloud-datalab

这是我试过的:( ipython notebook,python2.7)

import gcp
import gcp.storage as storage
import gcp.bigquery as bq
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np

sample_bucket_name = gcp.Context.default().project_id + '-datalab'
sample_bucket_path = 'gs://' + sample_bucket_name 
sample_bucket_object = sample_bucket_path + '/myFile.csv'
sample_bucket = storage.Bucket(sample_bucket_name)
df = bq.Query(sample_bucket_object).to_dataframe()
Run Code Online (Sandbox Code Playgroud)

哪个失败了.
你有什么导致我做错了吗?

Ant*_*iou 9

基于datalab的源代码 bq.Query()主要用于执行BigQuery SQL查询.在从Google云存储(GCS)中读取文件方面,一种可能的解决方案是使用datalab %gcsline magic函数将gCS中的csv读入局部变量.在变量中包含数据后,可以使用该pd.read_csv()函数将csv格式的数据转换为pandas DataFrame.以下应该有效:

import pandas as pd
from StringIO import StringIO

# Read csv file from GCS into a variable
%gcs read --object gs://cloud-datalab-samples/cars.csv --variable cars

# Store in a pandas dataframe
df = pd.read_csv(StringIO(cars))
Run Code Online (Sandbox Code Playgroud)

以下链接还有一个相关的stackoverflow问题: 使用Google datalab读取文件


小智 8

除了@ Flair关于%gcs的评论之外,我还得到了以下内容来为Python 3内核工作:

    import pandas as pd
    from io import BytesIO

    %gcs read --object "gs://[BUCKET ID]/[FILE].csv" --variable csv_as_bytes

    df = pd.read_csv(BytesIO(csv_as_bytes))
    df.head()
Run Code Online (Sandbox Code Playgroud)