Вы можете использовать NumPy's polyfit
для подбора полинома и получения коэффициентов подгонки. Ниже приведен минимальный рабочий ответ
import pandas as pd
import numpy as np
df = pd.DataFrame({'x':[1,2,3,4,5],
'y':[0.9, 3.8, 9.2, 15.4, 25.5]})
fit = np.polyfit(df['x'], df['y'], 2)
equation = np.poly1d(fit)
print ("The fit coefficients are a = {0:.4f}, b = {1:.4f} c = {2:.4f}".format(*fit))
print (equation)
выход
The fit coefficients are a = 1.0857, b = -0.4343 c = 0.3200
2
1.086 x - 0.4343 x + 0.32
Вы также можете визуализировать подгонку, используя matplotlib
import matplotlib.pyplot as plt
xmesh = np.linspace(min(df['x']), max(df['x']), 100)
plt.plot(df['x'], df['y'], 'bo', label='data')
plt.plot(xmesh, equation(xmesh), '-b', label='fit')
plt.legend(fontsize=20)
plt.xlabel('x', fontsize=20)
plt.ylabel('y', fontsize=20)
plt.show()
![enter image description here](https://i.stack.imgur.com/YQoIh.png)