J'essaie de calculer le r au carré de la régression entre la première colonne et les autres colonnes dans une trame de données (première colonne et deuxième, première colonne et troisième, etc.).
TypeError: l'argument ParallelRegression () après * doit être un itérable, pas un entier ".
Je me demande comment résoudre ce problème? Merci beaucoup!
import threading
totalThreads=3 #three different colors
def ParallelRegression(threadnum):
for i in range(threadnum):
res[:,i]=sm.OLS(df.iloc[:,0], df.iloc[:,i+1]).fit().rsquared
threads=[]
for threadnum in range(totalThreads):
t=threading.Thread(target=ParallelRegression,args=(threadnum))
threads.append(t)
t.start()
for threadnum in range(totalThreads):
threads[threadnum].join()
Voir un résumé des données (df) dans l'image liée ci-dessous:
La classe threading.Thread
A besoin d'un itérable d'arguments comme paramètre args
. Vous passez args=(threadnum)
qui est un seul objet int
, vous devez passer un objet itérable qui autoriserait plusieurs arguments, même lorsque vous ne voulez passer qu'un seul argument.
args=[threadnum]
Fonctionnerait, car cela fait un list
qui est itérable.