У меня есть pandasDataframes, и я хотел бы применить к нему функцию.Я хотел бы иметь много итераций, поэтому я думаю, что было бы неплохо использовать несколько threads
.
Вот как это выглядит:
def my_function(data_inputs_train):
#..... do something with dataframe....
#..... group by for loops etc .......
#..... create new dataframe.....
return newPandasDataFrame
class myThread (threading.Thread):
def __init__(self, threadID, data_inputs_train):
threading.Thread.__init__(self)
self.threadID = threadID
self.data_inputs_train = data_inputs_train
def run(self):
result_df = my_function(data_inputs_train)
thread1 = myThread(1, data_inputs_train)
thread2 = myThread(2, data_inputs_train)
Таким образом, оба потока должны возвращать новый фрейм данных, и после того, как оба потока завершатся, я хотел бы объединить два результата, которые вернулись из двух потоков.
Как я могу это сделать?Как можно вернуть какой-либо объект из функции run()
и как я могу получить к нему доступ в моем объекте thread1
?
Спасибо!
ОБНОВЛЕНИЕ при первом ответе, но оно не работает, также есть проблемы с отступами.
class myThread (threading.Thread):
def __init__(self, threadID, name, sleep, cust_type, data_inputs_train):
threading.Thread.__init__(self)
self.threadID = threadID
self.name = name
self.sleep = sleep
self.cust_type = cust_type
self.data_inputs_train = data_inputs_train
#here i need to get the newPandasDataFrame object.
result_df = fdp.optimze_score_and_cl(data_inputs_train)
def returnTheData(self):
return result_df