我需要根據使用另一列資料的 Web 服務的結果在資料框中填充一列。我使用的 Web 服務當時只允許 3 個并發請求。我想知道在使用 pandas 資料框 apply() 方法時是否可以控制它,或者我是否應該尋找不同的替代方法(例如,當時通過資料框記錄“行走/回圈”三個)。這是一個示例代碼:
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)
我的預期輸出(資料框的內容)將類似于:
id, Name, Status
1, Jane, Active
2, John, NonActive
歡迎任何建議,以這種方式或通過更好的選擇來解決問題。
謝謝你。
uj5u.com熱心網友回復:
鑒于 .apply() 在進入下一行之前決議每一行,我認為并發請求不會有問題。但是,如果 Web 服務對請求頻率有限制,您可能需要考慮在您的應用函式中放入一個小型睡眠計時器(例如 time.sleep())。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/519790.html