【问题标题】:Loading multiple files from Google Cloud Storage into a single Pandas Dataframe将 Google Cloud Storage 中的多个文件加载到单个 Pandas Dataframe 中
【发布时间】:2018-04-03 18:45:26
【问题描述】:

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

当我尝试运行它时说:

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

【问题讨论】:

  • 我遇到了同样的问题。有趣的是,当代码不在函数内部运行时,魔法可以正常工作。我的结论是,这一定是对将魔术命令放在函数中的限制,但我一直无法找到有关它的信息。

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


【解决方案1】:

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

此笔记本显示以下内容:

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

【讨论】:

  • 仍在为我工作。你遇到了什么错误?
  • 我忘记了我遇到了什么错误,但它现在可以正常工作了。谢谢。
猜你喜欢
  • 2019-11-23
  • 2021-08-03
  • 1970-01-01
  • 2018-04-22
  • 2018-08-03
  • 1970-01-01
  • 1970-01-01
  • 2016-07-18
  • 1970-01-01
相关资源
最近更新 更多