محاسبه میانگین متحرک (moving average) در python

یکی از ابزارهای پایتون برای آنالیز داده، پانداس (pandas) هست که اتفاقا ابزار بسیار قدرتمندی هست. امروز داشتم با این ابزار کار می کردم و تابع هاش رو مرور می کردم که بر خوردم به تابع rolling. تابع قدرتمندی که ردی ستون مورد نظر شما حرکت می کنه و تابعی رو روی هر تعداد از داده های اون بخش اجرا می کنه. اگر می خواید بدونید کدوم توابع، نگاهی به لینک زیر بندازین:

https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.rolling.html
https://virgool.io/d/whs6fnwoq8rm/pandas.DataFrame.rolling%E2%80%94pandas1.3.5documentation(pydata.org)
import pandas as pd
data = pd.read_csv('bourse.csv')

دیتا نمونه شامل شاخص بورس از سال 1390 هستش. یه خرده بازی با تاریخ:

data['year'] = data['Date_shamsi'].str[:4]
data['month'] = data['Date_shamsi'].str[5:7]
data['day'] = data['Date_shamsi'].str[8:10]

حالا تابع بریم سراغ میانگین متحرک:

rc = 4
nvda['movingsum'] = data['close'].rolling(rc).sum()
data['movingaverage'] = data['movingsum']/rc
data.head(10)

خب، تو خط اول یک متغیر رو برابر چهار قرار دادیم. می خوایم برای هر چهار مقدار در ستون مورد نظرمون، میانکین متحرک رو حساب کنیم. خط دوم جمع هر چهار عدد رو مقابل چهارمین عدد میزاره. حالا کافیه این جمع رو بر مقدار متغیرمون تقسیم کنیم. حتی می تونیم متغیر رو از کاربر ورودی بگیریم و براساس اون محاسبه کنیم.

می تونید کامل شده کد رو به همراه نمودار در گیت هاب من مشاهده کنید:

https://github.com/iyashar/MovingAverage