【发布时间】:2021-06-08 09:23:14
【问题描述】:
我正在尝试构建一个使用censusgeo 包与US Census Bureau API address batch facility 交互的小程序。 API 在任何一次调用中都有 10,000 个地址的限制,但我的数据框大约有 10,000 个地址。 300 万行。因此,我想将数据帧拆分为 N 个部分,每个部分包含大约 10,000 行,然后将每个部分输入 API 调用,提取输出并将其全部附加在一起。
我找到了this stackoverflow post,它对我提供了一个拆分我的 df 的功能非常有帮助。但它不会返回数据帧(例如,如果我运行 %who_ls DataFrame,它们不会显示)而且我不知道如何单独调用输出以便将它们提供给 API 调用。
这是我用来分割数据框的函数:
def split_dataframe(df, chunk_size = 10000):
chunks = list()
num_chunks = math.ceil(len(df) / chunk_size)
for i in range(num_chunks):
chunks.append(df[i*chunk_size:(i+1)*chunk_size])
return chunks
如何引用从该函数返回的块?最好的方法是简单地循环它们并将它们输入 API 调用吗? IE。类似:
for i in chunks:
censusgeocode --csv batch_i.csv
或者有没有更聪明/更有效的方法来做到这一点?
任何人都可以提供的指针将不胜感激!
【问题讨论】:
标签: python pandas dataframe api census