Как выполнить апроксимацию dataframe

Как выполнить апроксимацию функции? Есть пример в датафрейме. Можно перевести в список. Кто сталкивался.

Файл https://dropmefiles.com/K96n8

    function
1   240.9
2   241.18
3   241.166
4   241.2
5   241.47
6   241.165
7   241.3
8   241.38
9   241.255
10  241.17
11  241.1
12  241.1
13  241.17
14  240.95
15  240.48
16  240.69
...

Пример

введите сюда описание изображения


Ответы (1 шт):

Автор решения: CrazyElf

Даже не знаю чем тут можно аппроксимировать, ибо даже полиномы Чебышева большой степени как-то не очень себя ведут, когда их степень уже приближается к количеству точек по которым идёт аппроксимация. Но может вас это и устроит.

import pandas as pd
import seaborn as sns
import matplotlib.pylab as plt
from numpy.polynomial.chebyshev import Chebyshev

df = pd.read_csv('p.csv')
df.columns = ['x','y']

plt.figure(figsize=(10,7));
for i in [2,4,8,16]:
    c = Chebyshev.fit(df.x, df.y, i)
    df[f'y{i}'] = c(df.x)
sns.lineplot(data=df.drop(columns='x'));

полиномы Чебышева

→ Ссылка