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

2024-05-03 22:01:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试构建一个小程序,它使用censusgeo包与US Census Bureau API address batch facility进行交互。API在任何单个调用中的地址限制为10000个,但我的数据帧大约有300万行。因此,我希望将数据帧拆分为N个部分,每个部分大约包含10000行,然后将每个部分馈送到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调用吗?例如:

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

还是有更聪明/更有效的方法

任何人能给的建议都将不胜感激


1条回答
网友
1楼 · 发布于 2024-05-03 22:01:49

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

splits = split_dataframe(df, chunk_size=100000)

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

我确信有一种更优雅的方法可以将这些输出传递到API调用中,但目前这是可行的

相关问题 更多 >