并行处理DataFrame中的值



我有一个DataFrame,我需要通过将其传递给我无法控制的外部函数来处理每一行的值,我想尽快做到这一点(限制在20req/s由外部API)

d1 = {1:['Test','Test1','Test2'], 2:['file1','file2','file3'],3:[pd.NA,pd.NA,pd.NA]}
df = pd.DataFrame(data=d1)
1      2     3
0   Test  file1  <NA>
1  Test1  file2  <NA>
2  Test2  file3  <NA>

对我来说,将值从column2发送到函数process_file(),将返回值保存在column3中并并行执行以尽可能快地执行此操作(记住限制)的最佳方法是什么?我的第一个调用点通常是asyncio,但是在这种情况下,因为process_file()没有启用asyncio,所以我卡住了。

有人知道吗?

您可以使用pandas.Series.apply方法将值从列发送到函数:

df.loc[:, 3] = df.loc[:, 2].apply(process_file())

这个主题解释了如何限制您的请求:

如何限制调用API时使用python pandas的速率/速度?

最新更新