将多个文件从Google云端存储加载到一个Pandas Dataframe中

时间:2017-10-23 09:09:55

标签: pandas csv dataframe google-cloud-storage google-cloud-datalab

我一直在尝试编写一个功能,将多个文件从Google云存储桶加载到单个Pandas Dataframe中,但我似乎无法使其正常工作。

import pandas as pd
from google.datalab import storage
from io import BytesIO


def gcs_loader(bucket_name, prefix):
  bucket = storage.Bucket(bucket_name)
  df = pd.DataFrame()
  for shard in bucket.objects(prefix=prefix):
    fp = shard.uri
    %gcs read -o $fp -v tmp
    df.append(read_csv(BytesIO(tmp))
  return df

当我尝试运行它时说:

  

命令行中引用的未定义变量:$ fp

1 个答案:

答案 0 :(得分:4)

当然,这是一个例子: https://colab.research.google.com/notebook#fileId=0B7I8C_4vGdF6Ynl1X25iTHE4MGc

此笔记本显示以下内容:

  1. 创建两个随机CSV
  2. 将两个CSV文件上传到GCS存储桶
  3. 使用GCS Python API迭代存储桶中的文件。和,
  4. 将每个文件合并为一个Pandas DataFrame。