Web Services 如何使用panda apply()有效地调用Web服务

q9rjltbz  于 2022-11-15  发布在  其他
关注(0)|答案(1)|浏览(143)

我需要根据使用另一列数据的Web服务的结果来填充 Dataframe 中的一列。我正在使用的Web服务一次只允许3个并发请求。我想知道在使用panda Dataframe 应用时是否可以控制这一点()方法,或者我是否应该寻找不同的替代方法(例如,“遍历/循环” Dataframe 记录,每次三条)。

import pandas as pd
import requests

# Function to call a web service
# Return NonActive for non active and Active for active
def get_status(x):
    status_web_service = r'http://www.example.com/?id=' + x
    response = requests.get(status_web_service)
    return response.text()

# Main body starts here
df = pd.DataFrame([['1', 'Jane'], ['2', 'John']] , columns=['id', 'Name'])
df['Status'] = df['id'].apply(get_status)

我的预期输出( Dataframe 的内容)如下所示:

id, Name, Status
1, Jane, Active
2, John, NonActive

欢迎提出任何建议,无论是以这种方式解决问题,还是通过更好的替代方案。

  • 谢谢-谢谢
1aaf6o9v

1aaf6o9v1#

假设.apply()在进入下一行之前解析每一行,我不认为您会遇到并发请求的问题。但是,如果Web服务对请求频率有限制,您可能需要考虑在apply函数中放置一个小的睡眠计时器(例如time.sleep())。

相关问题