【发布时间】: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