Python 用数据绘制移动平均线

Python 用数据绘制移动平均线,python,pandas,matplotlib,Python,Pandas,Matplotlib,我试图计算和绘制移动平均线,以及根据以下数据计算移动平均线: def movingAvg(df): window_size = 7 i = 0 moving_averages = [] while i < len(df) - window_size + 1: current_window = df[i : i + window_size] window_average = current_window.mean() moving_averages.append(

我试图计算和绘制移动平均线,以及根据以下数据计算移动平均线:

def movingAvg(df):
window_size = 7
i = 0

moving_averages = []

while i < len(df) - window_size + 1:
    current_window = df[i : i + window_size]
    window_average = current_window.mean()
    moving_averages.append(window_average)
    i += 1

return moving_averages

    
dates = df_valid['dateTime']
startDay = dates.iloc[0]
lastDay = dates.iloc[-1]

fig, ax = plt.subplots(figsize=(20, 10))
ax.autoscale()
#plt.xlim(startDay, lastDay)

df_valid.sedentaryActivityMins.reset_index(drop=True, inplace=True)
df_moving = pd.DataFrame(movingAvg(df_valid['sedentaryActivityMins']))

df_nan = [np.nan, np.nan, np.nan, np.nan, np.nan, np.nan, np.nan]
df_nan = pd.DataFrame(df_nan)

df_moving = pd.concat([df_nan, df_moving])
plt.plot(df_valid.sedentaryActivityMins)
plt.plot(df_moving)

#plt.show()
有什么办法吗?
提前谢谢

当您执行concat时,索引不会更改。NAN也将采用与您系列的前7次观测相同的指数。因此,可以在concat之后重置索引,或者将ignore_索引设置为True,如下所示:

df_moving = pd.concat([df_nan, df_moving],ignore_index=True)
plt.plot(x)
plt.plot(df_moving)
这将产生预期的输出:


NAN不能显示在绘图中。您可以将前七个值设为零,也可以将其分配给序列本身,以便将其绘制为HI!如果我将它们指定为0,则绘图看起来非常有趣。如何将其分配给系列?我建议使用动态窗口。在第七点之前,窗口大小应该从1逐渐增加到7,然后保持不变。你认为这些值会是什么?你能为你的问题添加一些数据吗?请阅读。随机,但有趣的是,你同时使用“索引”和“索引”作为索引的复数。哈哈。好的,亲爱的!这成功了:-)谢谢!
df_moving = pd.concat([df_nan, df_moving],ignore_index=True)
plt.plot(x)
plt.plot(df_moving)