pandas 个批处理 API 个请求

pandas batched API requests

我有一个包含单列的 pandas 数据框。使用此列(作为键)执行网络查找 API 并将结果添加为附加列。

是否有一种简单的方法可以批量操作,即 100 个项目并为每个完成保留结果?

或者是实现此目的的唯一方法是手动批量迭代数据框?

IIUC 你可以使用 np.array_split 来实现这个:

In[24]:
df = pd.DataFrame(np.random.randn(10,3), columns=list('abc'))
for chunk in np.array_split(df,(len(df.index)+2)/3):
    print(chunk)

          a         b         c
0  0.013657  0.075587  0.422208
1  0.380518 -1.941691  2.465324
2 -0.530724 -0.074501 -0.527502
          a         b         c
3  0.959920  0.282187  1.277451
4 -0.013171  1.610865  0.492687
5  0.353947 -1.406726 -0.402013
          a         b         c
6 -0.462242  1.267895 -0.477148
7 -0.735699 -0.567091 -1.212561
          a         b         c
8 -1.416133  0.355858 -0.053821
9 -0.942774 -0.331276 -0.234650

所以 array_split 如果 df 不能平均分割,它将把 df 分割成不相等大小的分割,所以我传递索引的长度并四舍五入我加 2 所以它产生第 4 个块,如果我没有这样做:

In[25]:
for chunk in np.array_split(df,len(df.index)/3):
    print(chunk)

          a         b         c
0  0.013657  0.075587  0.422208
1  0.380518 -1.941691  2.465324
2 -0.530724 -0.074501 -0.527502
3  0.959920  0.282187  1.277451
          a         b         c
4 -0.013171  1.610865  0.492687
5  0.353947 -1.406726 -0.402013
6 -0.462242  1.267895 -0.477148
          a         b         c
7 -0.735699 -0.567091 -1.212561
8 -1.416133  0.355858 -0.053821
9 -0.942774 -0.331276 -0.234650

这试图在除法向下舍入时简单地生成大小为 3 的块。