2 回答

TA貢獻(xiàn)1811條經(jīng)驗(yàn) 獲得超6個(gè)贊
移動(dòng)平均線是一種方法(我的第一個(gè)想法,并且已經(jīng)建議)。
另一種方法是使用多項(xiàng)式擬合。由于原始數(shù)據(jù)中有 100 個(gè)點(diǎn),因此我在下面的示例中選擇了 10 階擬合(數(shù)據(jù)長度的平方根)。對原始代碼進(jìn)行一些修改:
idx = [i for i in range(100)]
rnd = np.random.randint(0,100,size=100)
ser = pd.Series(rnd, idx)
fit = np.polyfit(idx, rnd, 10)
pf = np.poly1d(fit)
plt.plot(idx, rnd, 'b', idx, pf(idx), 'r')
此代碼提供了如下圖:

TA貢獻(xiàn)1841條經(jīng)驗(yàn) 獲得超3個(gè)贊
您可以使用滾動(dòng)平均值執(zhí)行類似的操作:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
data = np.random.randint(0,100,size=(100, 1))
df["rolling_avg"] = df.A.rolling(7).mean().shift(-3)
sns.lineplot(data=df)
plt.show()
您還可以制作回歸圖來分析如何使用以下方法對數(shù)據(jù)進(jìn)行插值:
ax = sns.regplot(x=df.index, y="A", data=df, scatter_kws={"s": 10}, order=10, ci=None)
添加回答
舉報(bào)