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 的块。
我有一个包含单列的 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 的块。