Python4Finance
9.39K subscribers
576 photos
42 videos
154 files
770 links
کانال Python4Finance
آموزش پایتون در اقتصاد و مدیریت مالی
هر روز چند نکته را در خصوص پایتون برای مالی بیاموزیم
***
ارتباط با من
b2n.ir/y72935
***
آپارت:
aparat.com/Python4Finance
کانال چالش ها:
t.iss.one/python4finance_challenge
Download Telegram
اعمال یک تابع روی دیتافریم با تابع apply
یکی از توابع کارآمد در کار با دیتافریم ها تابع apply است. به کمک این تابع می توانید توابع مورد نظر خود را روی دیتافریم اعمال کنید. تابع apply بعد از groupby استفاده می شود.
یک مثال:
فرض کنید میزان خرید و فروش سهام خود را از دو سهم A و B به صورت روزانه ثبت کرده اید.
می خواهیم میزان خرید و فروش کل از هر سهم را محاسبه کنیم.
می خواهیم درصد خرید و فروش هر کدام از سهم ها را نیز محاسبه کنیم.
در مثال این پست می توانید نمونه کد این مثال را مشاهده نمایید.


#دیتافریم
#اعمال_تابع
#پایتون_مالی
#dataframe
#pandas
#groupby
#apply

@python4finance
مقایسه عناصر دو دیتافریم
حالتی را تصور کنید که شما داده های مربوط به یک نماد (مثلا بیت کوین) را در یک بازه زمانی مشخص از دو کارگزاری مختلف دریافت می کنید اما در محاسبات (مثلا محاسبه انحراف معیار یا میانگین) نتایج مختلفی را مشاهده می کنید. در این حالت ابتدا لازم است یکسان بودن داده ها را بررسی کنید. برای بررسی یکسان بودن داده ها از تابع compare در pandas استفاده می کنیم.
در مثال این پست، عناصر دو دیتافریم بررسی و تفاوت ها نمایش داده می شود.

#دیتا_فریم
#پانداس
#پایتون_مالی

#DataFrame
#Pandas
#python

@python4finance
یک کتابخانه بسیار سریع برای کار با داده ها-Polars
در پایتون برای مشاهده و دستکاری داده ها عموما از Pandas استفاده می کنیم. پانداس کتابخانه بسیار خوب و جامعی است اما وقتی تعداد داده ها بزرگ می شود کارایی پانداس رفته رفته کم می شود و سرعت پردازش هم پایین می آید. البته دلیل آن مشخص است. پانداس برای کار با Multithreading ساخته نشده است و در هر لحظه یک thread را پردازش می کند.
برای حل این موضوع از Polars استفاده می کنیم. Polars بر سرعت و کارایی تمرکز دارد. هنگام کار با میلیون‌ها ردیف، پانداس دچار مشکل می شود اما با Polars به راحتی اجرا می‌شوند.
یک ویژگی جالب دیگر Polars توانایی پردازش داده های با حجم بالاتر از RAM سیستم است.
کار با polars بسیار ساده است و توابع آن شبیه پانداس نوشته است.
اگر به این ماژول علاقه مند شدید سری به این آدرس بزنید.
در تصویر این پست، مقایسه چند ماژول متداول کار با داده ها برای کار با یک دیتافریم بزرگ نشان داده شده است.
#polars
#pandas
#dataframe


پایتون برای مالی
🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
37
کتابخانه pyspan — ابزار پاک‌سازی و پیش‌پردازش داده‌ها با پایتون
قبلا در خصوص نحوه کار با داده ها در کتابخانه پانداس (#pandas) مفصل صحبت کردیم. یکی دیگر از ابزارهایی که برای تحلیل گران داده توصیه می شود ماژول pyspan است.

🛠 ویژگی‌های کلیدی pyspan
شناسایی و پر کردن مقادیر گم‌شده،«ناقص» (NaN)، خطا یا ساختارهای ناهماهنگ
تشخیص نقاط پرت (Outliers) و امکان حذف یا اصلاح آن‌ها.
ثبت لاگ تغییرات: می‌دانیم چه عملیاتی روی داده انجام شده و با چه پارامترهایی.
امکان Undo: اگر تغییری منجر به مسأله شد، می‌توان به عقب برگشت.
پشتیبانی از ساختارهای داده‌ای متفاوت: دیتافریم‌های Pandas، لیست‌ها، دیکشنری‌ها و غیره.
فشرده سازی دیتافریم با هدف کاهش حجم دیتافریم های بزرگ


نکته جالب دیگر این است که این کتابخانه مستقل است و برای کار کردن نیازی به پانداس ندارد.

در پست بعد یک مثال برای این موضوع را با هم بررسی خواهیم کرد.

#pyspan
#pandas
#dataframe


پایتون برای مالی
🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
13
مثال کتابخانه pyspan — ابزار پاک‌سازی و پیش‌پردازش داده‌ها با پایتون

امکان ثبت لاگ تغییرات و Undo علی الخصوص در پروژه هایی که تغیییرات زیادی روی داده ها متصور است بسیار کمک کننده است. در واقع هر بار که یک عملیات پاک‌سازی انجام می‌دهید (مثل پر کردن مقادیر گم‌شده، حذف outlier، تغییر فرمت‌ها و …)، کتابخانه یک نسخه از وضعیت قبلی داده را ذخیره می‌کند، به همین دلیل اگر اشتباهی یک ستون را پاک کردید یا داده‌ای را به شکل نادرست تغییر دادید، می‌توانید به راحتی دیتافریم را به وضعیت قبلی برگردانید.

چرا Undo در پروژه‌های واقعی مخصوصاً در داده‌های مالی و اقتصادی مهم است؟
ممکن است یک روش پاک‌سازی مناسب نباشد
ممکن است یک روش outlier detection بیش‌ازحد سخت‌گیر باشد
یا بخواهید چند روش مختلف را مقایسه کنید
به جای این‌که دوباره دیتافریم را از اول بخوانید، با Undo فقط یک قدم به عقب می‌روید.
در واقع Undo مرحله‌به‌مرحله کار می‌کند (مانند stack).
تا زمانی که لاگ تغییرات فعال باشد، می‌توانید به عقب برگردید.

مثال
from pyspan import Cleaner
import pandas as pd

df = pd.DataFrame({'x': [1, 2, None, 100]})

cleaner = Cleaner(df)

cleaner.fill_missing(method='mean') # مرحله ۱
cleaner.detect_outliers(column='x') # مرحله ۲

cleaner.undo() # برگشت به مرحله ۱
cleaner.undo() # برگشت به دیتافریم اولیه

print(cleaner.result())



#pyspan
#pandas
#dataframe


پایتون برای مالی
🆔 t.iss.one/python4finance
🆔 ble.ir/python4finance
12