۵ تابع مفید پانداز در پایتون – راهنمای کاربردی


در کارهای روزمره پردازش داده مربوط به پروژههای یادگیری ماشین و علوم داده، کتابخانه «پانداز» (Pandas) یکی از پرکاربردترین کتابخانههای پایتون محسوب میشود. این کتابخانه همچون کتابخانه Numpy بر حوزه علوم داده، یادگیری ماشین و برنامهنویسی هوش مصنوعی حکمفرمایی میکند و تابعهای داخلی مفیدی دارد که برای کاربردهای مختلف مناسب است. در این مقاله به بررسی 5 تابع مفید پانداز در پایتون میپردازیم که موجب شده این کتابخانه چنین آوازه بلندی در میان دانشمندان داده و مهندسان یادگیری ماشین کسب کند.
تابع ()shift
فرض کنید در موقعیتی هستید که باید همه ردیفها را در یک دیتافریم شیفت کنید و یا باید از قیمت قبلی یک سهم در یک دیتافریم استفاده کنید. یا ممکن است بخواهید یک دمای میانگین برای سه روز اخیر در یک دیتاست بسازیم. در هر صورت تابع shift() یک روش مناسب برای انجام همه این کارها محسوب میشود.
تابع shift() در پانداز موجب جابجایی اندیس به تعداد پریودهای مطلوب میشود. این تابع یک پارامتر اسکالر میگیرد که «پریود» (Period) نام دارد و نشاندهنده تعداد شیفتها در محور مطلوب است. این تابع در زمان کار با دادههای سری زمانی بسیار مفید واقع میشود. میتوان از fill_value برای پر کردن فراتر از مقادیر کرانی استفاده کرد.
اکنون اگر بخواهیم قیمت سهم قبلی را به صورت یک ستون جدید بگیریم، میتوانیم از شیفت به صورت زیر استفاده کنیم:
بدین ترتیب میتوانیم قیمت سهام میانگین را برای سه روز اخیر به صورت زیر محاسبه کرده و یک ستون فیچر جدید ایجاد کنیم:
اینک دیتافریم باید به صورت زیر آمده باشد:
حتی میتوانیم پا را از این فراتر گذاشته و مقداری را از دوره زمانی بعد یا ردیف بعدی بگیریم:
df['TOMORROW_PRICE'] = df['PRICE'].shift(-1,fill_value=0)
اکنون دیتافریم باید به صورت زیر درآمده باشد:
برای کسب اطلاعات بیشتر در مورد گزینهها و تنظیمات این تابع به مستندات رسمی پانداز (+) مراجعه کنید.
تابع ()value_counts
تابع ()value_counts در پانداز یک شیء بازگشت میدهد که شامل شمار مقادیر یکتا است. شیء حاصل میتواند با ترتیب صعودی یا نزولی ذخیره شود و از طریق کنترل پارامتر، NA را در آن شامل یا استثنا کرد. در ادامه این تابع را با یک مثال عملی بررسی میکنیم. این تابع میتواند برای اندیس یا سریهای پانداز مورد استفاده قرار گیرد.
در ادامه مثالی از سریها میبینید:
اما این گزینه میتواند به جای شمارش دفعات ظهور یک مقدار برای تقسیم اندیس در شماره مفروض دسته (bin)-های نیمه-باز نیز مورد استفاده قرار گیرد.
برای کسب اطلاعات بیشتر در مورد گزینهها و تنظیمات این تابع به مستندات رسمی پانداز (+) مراجعه کنید.
تابع ()mask
متد ماسک یک کاربرد شرط if-else برای هر عنصر یک سری یا دیتافریم است. اگر Cond به صورت True باشد، در این صورت از مقدار Other (مقدار پیشفرض آن NaN است)، استفاده میکند؛ در غیر این صورت، مقدار اصلی را حفظ میکند. این متد ()mask کاملاً مشابه ()where است.
به دیتافریم زیر توجه کنید که میخواهیم علامت همه عناصری را که بر دو (بدون باقیمانده) بخشپذیر هستند، تغییر دهیم:
این کار با استفاده از تابع ماسک به سهولت قابل حصول است:
برای کسب اطلاعات بیشتر در خصوص متد ()mask به مستندات رسمی پانداز (+) مراجعه کنید.
تابع ()nlargest
در اغلب موارد، با موقعیتهایی مواجه میشویم که باید 3 مقدار فوقانی یا پنج مقدار تحتانی برای یک سری یا دیتافریم به دست آوریم. برای نمونه فرض کنید میخواهیم سه دانشجوی برتر را بر اساس نمره نهایی بیابیم یا سه کاندیدای ضعیف را بر حسب کل آرای کسب کرده در یک انتخابات مشخص سازیم.
متدهای ()nlargest و ()nsmallest در پانداز بهترین راهحل برای چنین الزامات پردازش دادهای هستند. مثال زیر سه مورد از بیشترین قد افراد را از یک دیتافریم با 10 مشاهده نمایش میدهد:
اگر دو مورد یکسان باشند، چند گزینه برای حل مشکل با استفاده از first ،last ،all وجود دارد. میتوانیم همه رخدادها را حفظ کنیم. تلاش میکنیم دو مورد از بلندترین قدها را در مثال زیر پیدا کنیم.
آخرین رخداد را نگه میداریم.
رخداد نخست را نگه میداریم:
برای کسب اطلاعات بیشتر در خصوص این متد به صفحه مستندات رسمی (+) پانداز مراجعه کنید.
تابع ()nsmallest
تابع ()nsmallest نیز به طرزی مشابه عمل میکند، اما این بار از فیلتر کوچکترین استفاده میکند. در مثال زیر از گزینه وزن برای یافتن کمترین دو وزن استفاده میکنیم:
برای کسب اطلاعات بیشتر در خصوص این متد به صفحه مستندات رسمی (+) پانداز مراجعه کنید.
سخن پایانی
پنج تابع پانداز وجود دارند که نه تنها مفید و عالی هستند، بلکه کارکرد کاملاً مشخص و روشنی دارند. در این مقاله با این تابعها آشنا شدیم. شما میتوانید از این تابعها برای ایجاد سهولت در محاسبات مختلف استفاده کنید.
اگر این مطلب برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی پایتون Python
- مجموعه آموزشهای برنامهنویسی
- گنجینه آموزشهای برنامهنویسی پایتون (Python)
- پانداس (Pandas) — از صفر تا صد
- دیتافریم (DataFrame) در کتابخانه Pandas — راهنمای مقدماتی
==