我正在尝试构建一个小程序,它使用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
还是有更聪明/更有效的方法
任何人能给的建议都将不胜感激
我想我已经找到了解决问题的办法。如果我将函数调用分配给一个对象,那么我就可以使用标准索引符号访问它创建的不同块。例如
我确信有一种更优雅的方法可以将这些输出传递到API调用中,但目前这是可行的
相关问题 更多 >
编程相关推荐