تحلیل دادههای مالی با پایتون و Pandas
در این بخش به بررسی تحلیل دادههای مالی با پایتون و Pandas میپردازیم، با استفاده از این ابزار قدرتمند قادر خواهیم بود دادههای مالی را به راحتی وارد، پاکسازی و تحلیل کرده و نتایج مفیدی برای تصمیمگیریهای مالی استخراج کنیم.
فهرست مطالب:
- معرفی کتابخانه Pandas
- نصب و راه اندازی کتابخانه های مورد نیاز
- وارد کردن داده های مالی از فایل CSV
- پاکسازی داده های مالی
- تحلیل داده های مالی (محاسبه شاخصهای مالی، روندها و…)
- تجسم داده های مالی با Matplotlib
معرفی کتابخانه Pandas
Pandas یک کتابخانه منبع باز برای زبان برنامهنویسی پایتون است که به طور گستردهای برای پردازش و تحلیل دادهها استفاده میشود. این کتابخانه ابزارهای متعددی برای کار با دادههای ساختاریافته و نیمهساختاریافته فراهم میکند که به شما اجازه میدهد دادهها را به سادگی دستکاری، تجزیه و تحلیل و تجسم کنید.
ویژگیهای کلیدی Pandas
ساختار دادههای انعطافپذیر: Pandas دو ساختار داده اصلی دارد: Series و DataFrame. Series برای آرایههای یکبعدی با برچسب استفاده میشود و DataFrame یک ساختار داده دوبعدی شبیه به جدولهای دیتابیس است که به شما امکان میدهد دادهها را به صورت ردیفها و ستونها سازماندهی کنید.
عملیات دادهای کارآمد: Pandas ابزارهای قدرتمندی برای انتخاب، فیلتر کردن، گروهبندی و تغییر شکل دادهها ارائه میدهد. با استفاده از این قابلیتها، میتوانید عملیات پیچیدهای را به سادگی و با کارایی بالا انجام دهید.
پشتیبانی از انواع مختلف دادهها: Pandas قادر است دادهها را از منابع مختلفی مانند فایلهای CSV، Excel، SQL databases و JSON وارد کند و همچنین دادهها را به این فرمتها صادر کند.
ادغام با دیگر کتابخانهها: Pandas به راحتی با کتابخانههای دیگر پایتون مانند NumPy، SciPy و Matplotlib ادغام میشود. این امکان به شما میدهد تا از قابلیتهای تحلیل و تجسم دادههای پیشرفته نیز بهرهمند شوید.
پاکسازی دادهها: Pandas ابزارهای متعددی برای شناسایی و رفع نقصها و ناسازگاریها در دادهها فراهم میکند. این شامل حذف مقادیر گمشده، تغییر نوع دادهها، حذف یا تغییر دادههای تکراری و بسیاری از عملیات پاکسازی دیگر میشود.
مثال ساده استفاده از Pandas
در زیر یک مثال ساده برای وارد کردن دادههای مالی از یک فایل CSV و نمایش چند سطر اول دادهها آورده شده است:
در این مثال، ابتدا کتابخانه Pandas را وارد کرده و سپس دادهها را از یک فایل CSV به یک DataFrame وارد میکنیم. با استفاده از تابع head()
، میتوانیم چند سطر اول دادهها را مشاهده کنیم.
با استفاده از Pandas میتوانید به سادگی دادههای مالی خود را تحلیل کرده و بینشهای مفیدی برای تصمیمگیریهای مالی به دست آورید.
نصب و راهاندازی کتابخانههای مورد نیاز
برای تحلیل دادههای مالی با پایتون و Pandas، ابتدا باید کتابخانههای مورد نیاز را نصب و راهاندازی کنیم. در این بخش، مراحل نصب و راهاندازی کتابخانههای Pandas و Matplotlib را توضیح میدهیم. این کتابخانهها ابزارهای اصلی ما برای پردازش، تحلیل و تجسم دادهها خواهند بود.
نصب کتابخانه Pandas
برای نصب Pandas میتوانید از ابزار مدیریت بسته pip
استفاده کنید. برای نصب Pandas، دستور زیر را در ترمینال یا خط فرمان اجرا کنید:
pip install pandas
این دستور آخرین نسخه از کتابخانه Pandas را دانلود و نصب میکند. پس از نصب، میتوانید با وارد کردن Pandas در کد خود، از قابلیتهای آن استفاده کنید.
نصب کتابخانه Matplotlib
برای تجسم دادهها از کتابخانه Matplotlib استفاده میکنیم. برای نصب Matplotlib، دستور زیر را در ترمینال یا خط فرمان اجرا کنید:
pip install matplotlib
این دستور آخرین نسخه از کتابخانه Matplotlib را دانلود و نصب میکند. پس از نصب، میتوانید با وارد کردن Matplotlib در کد خود، نمودارها و تجسمهای مختلفی ایجاد کنید.
وارد کردن دادههای مالی از فایل CSV
در این بخش، نحوه وارد کردن دادههای مالی از یک فایل CSV به یک DataFrame در Pandas را بررسی میکنیم. فایلهای CSV یکی از رایجترین فرمتها برای ذخیره و تبادل دادهها هستند و Pandas ابزارهای قدرتمندی برای کار با این نوع فایلها فراهم میکند.
مراحل وارد کردن دادهها از فایل CSV
ایجاد فایل CSV: برای شروع، یک فایل CSV حاوی دادههای مالی ایجاد کنید. در این مثال، فایل ما financial_data.csv
نام دارد و شامل ستونهای Date
, Open
, High
, Low
, Close
, Volume
است. شما می توانید برای نمونه از فایل آماده ما استفاده کنید برای دانلود اینجا را کلیک کنید.
وارد کردن کتابخانههای مورد نیاز: ابتدا باید کتابخانه Pandas را وارد کنیم.
import pandas as pd
خواندن دادهها از فایل CSV: با استفاده از تابع read_csv
در Pandas، دادهها را از فایل CSV به یک DataFrame وارد میکنیم:
# خواندن دادهها از فایل CSV
data = pd.read_csv('financial_data.csv')
# نمایش چند سطر اول دادهها
print(data.head())
در این مثال، دادهها از فایل financial_data.csv
خوانده شده و به یک DataFrame به نام data
وارد میشوند. تابع head()
چند سطر اول دادهها را نمایش میدهد تا بتوانیم صحت و ساختار دادهها را بررسی کنیم.
تنظیمات اضافی: تابع read_csv
تنظیمات اضافی بسیاری دارد که میتوانند برای وارد کردن دادهها با دقت بیشتر استفاده شوند. برخی از این تنظیمات شامل مشخص کردن جداکننده (delimiter
)، تعیین نوع داده برای هر ستون (dtype
)، و برخورد با مقادیر گمشده (na_values
) است. در زیر یک مثال پیشرفتهتر آورده شده است:
در این مثال، جداکننده به صورت کاما (delimiter=','
) مشخص شده است و نوع داده برای هر ستون تعیین شده است. همچنین مقادیر گمشده به صورت NA
و -
تعریف شدهاند که به صورت خودکار به NaN
تبدیل میشوند.
تبدیل ستون تاریخ به فرمت datetime: برای تحلیل دادههای مالی، معمولاً نیاز داریم تا ستون تاریخ را به فرمت datetime تبدیل کنیم. این کار با استفاده از تابع to_datetime
در Pandas انجام میشود:
با این کار، ستون Date
به فرمت datetime تبدیل میشود که امکان استفاده از توابع و متدهای بیشتری برای تحلیل دادهها را فراهم میکند.
با استفاده از مراحل بالا، میتوانید دادههای مالی را از یک فایل CSV به یک DataFrame در Pandas وارد کنید. این دادهها را میتوان به راحتی تحلیل و تجزیه و تحلیل کرد. در بخشهای بعدی، به بررسی روشهای پاکسازی و تحلیل دادههای مالی خواهیم پرداخت تا بتوانید بینشهای مفیدی از دادههای خود استخراج کنید.
پاکسازی دادههای مالی
پاکسازی دادهها یکی از مراحل حیاتی در فرآیند تحلیل دادهها است. دادههای مالی معمولاً دارای نواقص و ناسازگاریهایی هستند که باید قبل از تحلیل رفع شوند. در این بخش، به بررسی چندین تکنیک برای پاکسازی دادههای مالی با استفاده از Pandas میپردازیم.
مراحل پاکسازی دادهها
حذف مقادیر گمشده: دادههای مالی ممکن است دارای مقادیر گمشده باشند که باید آنها را حذف یا جایگزین کنیم. با استفاده از متد dropna
میتوانیم ردیفهایی که دارای مقادیر گمشده هستند را حذف کنیم:
data.dropna(inplace=True)
یا میتوانیم مقادیر گمشده را با یک مقدار مشخص جایگزین کنیم:
data.fillna(0, inplace=True)
حذف دادههای تکراری: ممکن است در دادههای مالی، ردیفهای تکراری وجود داشته باشد. برای حذف این ردیفها از متد drop_duplicates
استفاده میکنیم:
data.drop_duplicates(inplace=True)
تغییر نوع دادهها: اطمینان حاصل کنید که ستونها دارای نوع داده مناسب هستند. برای مثال، ستون Date
باید به فرمت datetime تبدیل شده باشد:
data['Date'] = pd.to_datetime(data['Date'])
فیلتر کردن دادهها: میتوانیم دادهها را بر اساس شرایط خاص فیلتر کنیم. برای مثال، فقط دادههای مربوط به سال 2023 را انتخاب کنیم:
data = data[data['Date'].dt.year == 2023]
تعیین شاخص (Index): تنظیم شاخص DataFrame میتواند دسترسی و تحلیل دادهها را آسانتر کند. معمولاً ستون Date
به عنوان شاخص تنظیم میشود:
data.set_index('Date', inplace=True)
تحلیل دادههای مالی (محاسبه شاخصهای مالی، روندها و …)
پس از پاکسازی دادهها، میتوانیم به تحلیل آنها بپردازیم. در این بخش، به محاسبه شاخصهای مالی و شناسایی روندهای دادهها خواهیم پرداخت.
محاسبه شاخصهای مالی
محاسبه میانگین متحرک: میانگین متحرک یکی از شاخصهای مهم در تحلیل تکنیکال است. برای محاسبه میانگین متحرک 30 روزه، از متد rolling
استفاده میکنیم:
data['30_day_MA'] = data['Close'].rolling(window=30).mean()
محاسبه بازده روزانه: بازده روزانه یکی از شاخصهای مهم در تحلیل مالی است. برای محاسبه بازده روزانه، از فرمول زیر استفاده میکنیم:
data['Daily_Return'] = data['Close'].pct_change()
محاسبه نوسانات (Volatility): نوسانات یکی دیگر از شاخصهای مهم است که میزان تغییرات قیمت را نشان میدهد. برای محاسبه نوسانات سالانه، از فرمول زیر استفاده میکنیم:
data['Annual_Volatility'] = data['Daily_Return'].rolling(window=252).std() * (252**0.5)
شناسایی روندها
شناسایی روند صعودی و نزولی: با استفاده از شاخص میانگین متحرک میتوان روندهای صعودی و نزولی را شناسایی کرد. به عنوان مثال، اگر قیمت فعلی بالاتر از میانگین متحرک باشد، میتواند نشاندهنده یک روند صعودی باشد:
data['Uptrend'] = data['Close'] > data['30_day_MA']
شناسایی نقاط بحرانی (Support and Resistance): نقاط بحرانی قیمتها معمولاً بر اساس نقاط حداقلی و حداکثری تعیین میشوند. برای شناسایی این نقاط، میتوان از تحلیلهای پیچیدهتر مانند الگوهای کندلاستیک استفاده کرد.
تجسم دادههای مالی با Matplotlib
تجسم دادهها به ما کمک میکند تا الگوها و روندهای موجود در دادهها را بهتر درک کنیم. در این بخش، به نحوه تجسم دادههای مالی با استفاده از Matplotlib میپردازیم.
مراحل تجسم دادهها
وارد کردن کتابخانه Matplotlib: ابتدا باید کتابخانه Matplotlib را وارد کنیم:
import matplotlib.pyplot as plt
رسم نمودار خطی برای قیمت پایانی: برای رسم نمودار خطی قیمت پایانی، از متد plot
استفاده میکنیم:
رسم نمودار میانگین متحرک: برای رسم نمودار میانگین متحرک، میتوان نمودار دیگری به نمودار قیمت پایانی اضافه کرد:
رسم نمودار بازده روزانه: برای رسم نمودار بازده روزانه، از متد plot
استفاده میکنیم:
در این مقاله، مراحل مختلف تحلیل دادههای مالی با استفاده از پایتون و Pandas را بررسی کردیم. از وارد کردن و پاکسازی دادهها گرفته تا محاسبه شاخصهای مالی و تجسم دادهها، تمامی این مراحل به شما کمک میکنند تا بینشهای مفیدی از دادههای مالی خود استخراج کنید. با استفاده از این روشها و ابزارها، میتوانید تصمیمگیریهای مالی بهتری انجام دهید و تحلیلهای خود را بهبود بخشید.
آیا این مطلب برای شما مفید بود ؟