引用从拆分数据帧的函数返回的输出
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 调用,但这暂时有效。
我正在尝试构建一个使用 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 调用,但这暂时有效。