تابع groupby
آموزش‌های پایه‌ای هوش مصنوعیآموزش‌های پیشرفته هوش مصنوعیپایتون و ابزارهای یادگیری عمیقداده کاوی و بیگ دیتا

۴ توصیه مهم برای استفاده از تابع groupby از کتابخانه Pandas

    0

    کتابخانه Pandas محبوب‌ترین کتابخانه مورداستفاده در فعالیت‌های تحلیلی و اصلاحی است. به کمک توابع متنوع این کتابخانه می‌توان تحلیل داده‌ها را بدون مشکل و به سرعت انجام داد. علاوه بر این، دستورالعمل‌های آن بسیار ساده و قابل‌فهم می‌باشند. در این مقاله، تمرکز ما تنها بر روی یکی از توابع Pandas به نام تابع groupby است که برای گروه‌بندی داده‌ها بر اساس مقادیر متمایز موجود یک ستون استفاده می‌شود. پس از انجام این گروه‌بندی می‌توان با توجه گروه‌های حاصله روی ستون‌های حاوی مقادیر عددی تحلیل آماری انجام داد یا یک تابع دیگر را روی آن‌ها اعمال نمود.

    با بررسی مثال زیر درک این فرایند آسان‌تر خواهد شد. برای شروع کار باید کتابخانه‌های موردنیاز را وارد برنامه کنیم.

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

    تابع groupby

    در این‌ کد استفاده از  پارامتر usecols که در پرانتز جلوی تابع read_csv تعریف شده، به کاربر اجازه می‌دهد که تنها ستون‌های‌ موردنیاز خود را از میان ستون‌های فایل csv بخواند. در بخش بعد، داده‌های پرت ستون‌های price و landsize را نیز حذف شده است و در آخر، با استفاده از تابع sample یک نمونه تصادفی و شامل ۱۰۰۰ مشاهده (یا سطر) از این دیتاست برگزیده شد.

    پیش از بیان توصیه اصلی، یک بار تابع groupby اجرا می‌شود، به نحوی که پس از گروه‌بندی داده‌ها بر اساس ستون  Typeمتوسط فاصله هر گروه از منطقه تجاری شهر محاسبه شود.

    تابع groupby

    همانطور که می‌بینید، خانه‌هایی که در این دیتاست در نوع h قرار گرفته‌اند در مقایسه با دو نوع دیگر، فاصله بیشتری با منطقه تجاری مرکز شهر دارند. حال می‌توانیم به سراغ توصیه‌های من برویم که به شما می‌آموزند چطور کارایی تابع groupby  را بالا برده و بهترین استفاده را از آن بکنید.

    ۱. نام ستون‌ها را تغییر دهید.

    تابع groupby به طور پیش‌فرض نام ستون‌ها را تغییر نمی‌دهد و به همین دلیل، نمی‌توان متوجه شد که مقادیر تجمعی ذاتاً بیانگر چه چیزی هستند. برای مثال، اگر در دیتافریم بالا (که میانگین فاصله را براساس نوع خانه‌ها محاسبه کردیم) نام ستون distance را به avg_distance (به معنای میانگین فاصله) تغییر می‌دادیم، قطعاً نام بامعناتری برای این ستون بود.

    یک راه برای انجام این کار است که به جای تابع mean  از تابع agg استفاده کنیم.

    تابع groupby
    البته می‌توان پس از اجرای همان کد قبلی نیز نام ستون را تغییر داد، اما این روش معقول‌تر و کاربردی‌تر است. اگر به جای یک ستون با چندین ستون سروکار داشته باشیم و یا بخواهیم توابع مختلفی را روی یک ستون اعمال کنیم، اهمیت تغییر نام ستون‌ها واضح‌تر خواهد بود. به علاوه باید اشاره کنم که تابع agg می‌تواند چندین ستون را به صورت همزمان پردازش کند. به این منظور تنها کافی است نام ستون‌ها و تابع را مشخص کنیم.

    تابع groupby

    ۲. از عبارات Lambda استفاده کنید.

    عبارت Lambda نوعی خاص از توابع پایتون است که برای تعریف آن از کلیدواژه def استفاده نمی‌شود و به همین دلیل نیز نیازی به تخصیص یک نام خاص به آن نیست. هدف اصلی استفاده از عبارت Lambda ساده‌سازی کد است. این تابع یک خطی بوده و تنها یک بار قابل استفاده است.

    در تابع agg می‌توان از عبارات Lambda نیز استفاده کرد. به این ترتیب می‌توان تبدیلات و محاسبات پیچیده‌تری را در کنار تابع groupby بر روی دیتافریم اعمال کرد. برای مثال، می‌توانیم متوسط قیمت هر یک از انواع خانه‌ها را محاسبه کرده و سپس رقم آن را برحسب میلیون دلار بیان کنیم. برای این کار باید از یک عبارت Lambda استفاده نمود.

    تابع groupby

      ۳. از پارامتر As_index کمک بگیرید.

    تابع groupby ستونی که دیتافریم براساس آن گروه‌بندی شده است را به عنوان شاخص دیتافریم خروجی درنظر می‌گیرد. اما اگر چندین گروه‌بندی تو در تو Nested groups انجام داده باشیم، ظاهر دیتافریم چندان زیبا نخواهد شد.

    تابع groupby

    اگر بخواهیم بعداً روی این دیتافریم تحلیلی انجام دهیم، منطقی نیست که ستون type  و region  ستون‌های شاخص درنظر گرفته شوند. در این شرایط می‌توان از تابع reset_index استفاده کرد. اما یک راه بهتر و بهینه‌تر نیز برای این کار وجود دارد.

    اگر پارامتر as_index را در تابع groupby تعریف کرده و مقدار آن را برابر False قرار دهیم، ستون‌هایی که گروه‌بندی بر اساس آن‌ها صورت گرفته، به عنوان ستون‌های معمولی در دیتافریم نمایش داده می‌شوند نه به عنوان ستون شاخص.

    تابع groupby

    ۴. مقادیر گمشده را نیز درنظر بگیرید.

    تابع groupby به‌طور پیشفرض خانه‌های خالی از داده را در نظر نمی‌گیرد. بگذارید برای توضیح این موضوع ابتدا مقادیر موجود در تعدادی از سلول‌های ستون Type را به NaN تبدیل کنم:

    با استفاده از تابع iloc می‌توان مجموعه‌ای از سطرها و ستون‌ها را به کمک اندیس آن‌ها انتخاب کرد و روی آن‌ها عملیات خاصی را انجام داد. در کد بالا، سطرهای ۱۰۰ تا ۱۵۰ ستون اول (که اندیس آن صفر است) را انتخاب کرده و مقادیر درون این سلول‌ها را برابر NaN گذاشته‌ام.

    حال اگر بخواهیم مثل قبل میانگین فاصله هر یک از انواع خانه‌ها را از منطقه تجاری شهر محاسبه کنیم، تابع groupby بدون توجه به مقادیر گمشده، محاسبات را انجام می‌دهد و به ما اطلاعاتی درباره مقادیر گمشده نمی‌دهد.

    تابع groupby

    در برخی موارد، اطلاعات داده‌های گمشده را نیاز داریم تا بتوانیم آن‌ها را مدیریت کنیم. با تعریف پارامتر dropna در تابع groupby می‌توانیم مجموع مقادیر سطرهایی که دارای مقادیر گمشده هستند را نیز محاسبه کنیم.

    سخن آخر

    تابع groupby یکی از پرکاربردترین توابعی است که در فرایند تحلیل کاوش‌گرانه داده‌ها Exploratory data analysis استفاده می‌شود. تا بتوان روابط بین متغیرهای را شناسایی کرد. به همین دلیل، توانایی استفاده کارآمد از این تابع حائز اهمیت است و در فرآیند تحلیل داده‌ها با Pandas کمک زیادی به ما می‌کند. با به کارگیری این ۴ توصیه در هنگام استفاده از تابع groupby می‌توانید از تمام توانایی‌ها و قابلیت‌های آن به نحو احسن استفاده کنید.

    Pepper؛ رباتی که با تکیه بر گفتار درونی تعاملات خود با انسان‌ها را بهبود می‌بخشد

    مقاله قبلی

    ۳DAT ؛ فناوری جذاب اینتل برای کمک به لیگ حرفه‌ای فوتبال آمریکایی

    مقاله بعدی

    شما همچنین ممکن است دوست داشته باشید

    نظرات

    پاسخ دهید

    نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *