将多个文件从Google Cloud Storage加载到单个Pandas Dataframe中

Mic*_*oni 3 csv dataframe pandas google-cloud-storage google-cloud-datalab

我一直在尝试编写一个函数,将Google Cloud Storage存储桶中的多个文件加载到单个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
Run Code Online (Sandbox Code Playgroud)

当我尝试运行时说:

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

Bob*_*ith 5

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

该笔记本显示以下内容:

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