Я хочу ускорить процесс в кадре данных, где каждая строка в кадре данных - это точки (красные точки на изображении), и я подгоняю каждую строку к многочлену (синие точки на изображении):
Мой фрейм данных выглядел бы так:
0 21.357071 21.357071 NaN 29.240519 20.909416 23.884323 NaN NaN 21.533360 19.145000 NaN
1 29.373487 29.373487 NaN 32.593994 26.423960 29.623251 NaN NaN 30.685534 29.297455 20.411913
2 19.116655 19.116655 NaN 27.120478 18.723265 19.857676 NaN NaN 20.249647 18.867172 NaN
Я уже сделал это со следующим кодом:
for index,row in df.iterrows():
dataR = row[:].dropna()
x = np.array(dataR.index).astype(float) #x = column index
y = dataR.values
y = np.vstack(y).astype(np.float).T[0] #y = value
coefs = poly.polyfit(x, y, deg=4)
ffit = poly.polyval(np.arange(0,maxColumns,1), coefs)
df.loc[index,0:maxColumns] = ffit
Но мой фрейм данных оченьбольшой, так что это медленно. Интересно, смогу ли я векторизовать этот код?