我有一个带有两列x和y的pandas数据框。我知道数据点的图形将是一个抛物线,因此此数据框的功能将是ax²+bx+c=y

我读过有关通过numpy解决变量的二次函数的不同文章。但是在这种情况下,由于数据帧,我知道了变量。

是否存在借助数据框的x,y值来获取系数a,b和c的函数?

最佳答案

您可以使用NumPy的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()


python - 用数据框求解二次方程-LMLPHP

关于python - 用数据框求解二次方程,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54200470/

10-11 19:16
查看更多