【问题标题】:Referring to returned output from function that splits up a dataframe引用从拆分数据帧的函数返回的输出
【发布时间】: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


    【解决方案1】:

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

    splits = split_dataframe(df, chunk_size=100000)
    
    for i in range(len(splits)):
        print(len(splits[i]))
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-09
      • 1970-01-01
      • 2019-03-05
      • 2023-03-09
      • 1970-01-01
      • 2018-11-20
      相关资源
      最近更新 更多