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

Loading multiple files from Google Cloud Storage into a single Pandas Dataframe

我一直在尝试编写一个函数,将多个文件从 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

当我尝试 运行 时,它说:

undefined variable referenced in command line: $fp

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

此笔记本显示以下内容:

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