【发布时间】:2020-03-24 09:32:52
【问题描述】:
我的 Pandas 数据框有一百万行。我必须在每一行的一个函数内调用一个 rest API 调用,并且需要捕获响应。每个休息呼叫平均需要 2 秒的时间。但是我尝试的以下情况很慢
案例一:申请
def predict(x):
res = request("XYZ")
return res.json()
df['response_value'] = df.apply(lambda x:predict(x['request_filed']),axis=1)
案例 2:向量化而不是应用
def predict(x):
l = []
for each in x
l.append(request("XYZ"))
return l
df['response_value'] = predict(df['request_filed']
案例 3:并行应用
def predict(x):
res = request("XYZ")
return res.json()
df['response_value'] = df.parallel_apply(lambda x:predict(x['request_filed']),axis=1)
他们有什么更好的方法来加快这个过程吗?
【问题讨论】:
-
你解决了吗?
标签: python pandas multithreading