所以,我想并行迭代一個 pandas df 所以假設我有 15 行然后我想并行迭代它而不是一一迭代。df:-df = pd.DataFrame.from_records([ {'domain':'dnd','duration':'90','media_file':'testfont.wav','user':'tester_food','channel':'confctl-2' }, {'domain':'hrpd','duration':'90','media_file':'testfont.wav','user':'tester_food','channel':'confctl-2' }, {'domain':'blhp','duration':'90','media_file':'testfont.wav','user':'tester_food','channel':'confctl-2' }, {'domain':'rbswp','duration':'90','media_file':'testfont.wav','user':'tester_food','channel':'confctl-2' }, {'domain':'foxbp','duration':'90','media_file':'testfont.wav','user':'tester_food','channel':'confctl-2' }, {'domain':'rbsxbp','duration':'90','media_file':'testfont.wav','user':'tester_food','channel':'confctl-2' }, {'domain':'dnd','duration':'90','media_file':'testfont.wav','user':'tester_food','channel':'confctl-2' }, {'domain':'hrpd','duration':'90','media_file':'testfont.wav','user':'tester_food','channel':'confctl-2' } ])因此,我正在迭代 df 并制作命令行,然后將輸出存儲在 df 中并進行數據過濾,最后將其存儲到 influxdb 中。問題是我正在一個一個地做,因為我正在迭代它。我想并行迭代所有行。到目前為止,我已經制作了 20 個腳本并使用多處理并行處理所有腳本。當我必須進行更改時很痛苦,因為我必須在所有 20 個腳本中進行更改。我的腳本如下所示:-for index, row in dff.iterrows(): domain = row['domain'] duration = str(row['duration']) media_file = row['media_file'] user = row['user'] channel = row['channel'] cmda = './vaa -s https://' + domain + '.www.vivox.com/api2/ -d ' + duration + ' -f ' + media_file + ' -u .' + user + '. -c sip:confctl-2@' + domain + '.localhost.com -ati 0ps-host -atk 0ps- test' rows = [shlex.split(line) for line in os.popen( cmda).read().splitlines() if line.strip()] df = pd.DataFrame(rows) """ Bunch of data filteration and pushing it into influx """
2 回答

慕運維8079593
TA貢獻1876條經驗 獲得超5個贊
不要啟動 15 個進程,而是使用線程并使用參數調用線程函數。threading.Thread(target=func, args=(i,))
其中 i 是您的號碼,func
是包裝整個代碼的函數。然后遍歷它。您不需要在 15 個項目處并行化迭代。
添加回答
舉報
0/150
提交
取消