引用从拆分数据帧的函数返回的输出

Referring to returned output from function that splits up a dataframe

我正在尝试构建一个使用 censusgeo 包与 US Census Bureau API address batch facility 交互的小程序。 API 在任何一次调用中都有 10,000 个地址的限制,但我的数据框有大约。 300 万行。因此,我想将数据框分成 N 个部分,每个部分包含大约 10,000 行,然后将每个部分提供给 API 调用,提取输出并将它们全部附加在一起。

我发现 this Whosebug post 这对我提供拆分 df 的功能非常有帮助。虽然它没有 return 数据帧(例如,如果我 运行 %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

如何引用从该函数 return 编辑的块?最好的方法是简单地遍历它们并将它们输入 API 调用吗? IE。类似于:

for i in chunks:
   censusgeocode --csv batch_i.csv

或者是否有 smarter/more 有效的方法来做到这一点?

任何人都可以提供指点,我们将不胜感激!

我想我已经找到了问题的解决方案。如果我将函数调用分配给一个对象,我就可以使用标准索引符号访问它创建的不同块。例如

splits = split_dataframe(df, chunk_size=100000)

for i in range(len(splits)):
    print(len(splits[i]))

我确信有一种更优雅的方法可以将这些输出传递给 API 调用,但这暂时有效。