آموزش پاکسازی داده در پایتون (Data Cleansing)

داده‌های ناقص همواره یکی از چالش‌های اصلی در سناریوهای واقعی محسوب می‌شوند. حوزه‌هایی مانند یادگیری ماشین (Machine Learning) و داده کاوی (Data Mining) به شدت تحت تأثیر کیفیت پایین داده‌ها قرار می‌گیرند که یکی از دلایل اصلی آن، وجود مقادیر گمشده در داده‌ها است. در این حوزه‌ها، یکی از تمرکزهای اصلی، نحوه برخورد با مقادیر گمشده است تا دقت و اعتبار مدل‌های پیش‌بینی افزایش یابد. در این مقاله با روش های مختلف پاکسازی داده در پایتون آشنا می‌شوید که به بهبود کیفیت تحلیل و مدل سازی کمک می‌کند.

چه زمانی و چرا داده‌ها ناقص می‌شوند؟

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

نحوه مدیریت مقادیر گمشده در Pandas

در این بخش می‌خواهیم نحوه مدیریت مقادیر گمشده مانند NA یا NaN را با استفاده از کتابخانه Pandas بررسی کنیم.

خروجی این کد به شکل زیر خواهد بود:

در این مثال، با استفاده از تابع reindex ایندکس‌هایی به DataFrame اضافه شده‌اند که در داده‌های اولیه وجود نداشتند و به همین دلیل، سلول‌های متناظر با آن‌ها دارای مقدار NaN هستند. مقدار NaN مخفف عبارت Not a Number بوده و نمایانگر داده‌های گمشده در DataFrame می‌باشد.

بررسی وجود مقادیر گمشده در داده‌ها

برای اینکه بتوان راحت تر مقادیر گمشده را در انواع مختلف آرایه‌ها شناسایی کرد، کتابخانه Pandas توابعی به نام isnull() و notnull() ارائه می‌دهد. این توابع هم به صورت مستقل قابل استفاده هستند و هم به عنوان متد روی اشیای Series و DataFrame عمل می‌کنند.

مثال:

خروجی این کد به شکل زیر خواهد بود:

در این خروجی، True نشان می‌دهد که مقدار آن سلول گمشده است و False به این معنی است که داده ای در آن قسمت وجود دارد. تابع isnull() به شما کمک می‌کند تا خیلی سریع و ساده مقادیر خالی (NaN) را در هر ستون یا کل DataFrame شناسایی کنید. این قابلیت برای پیش پردازش داده‌ها و پاکسازی آن ها قبل از تجزیه و تحلیل یا آموزش مدل، بسیار کاربردی است.

پاکسازی و پر کردن مقادیر گمشده در داده‌ها

کتابخانه Pandas ابزارهای متنوعی برای پاکسازی و جایگزینی مقادیر گمشده ارائه می‌دهد. یکی از پرکاربردترین توابع برای این منظور، تابع fillna() است. این تابع امکان پر کردن مقادیر NA (یا NaN) را با روش‌های مختلف فراهم می‌کند. در ادامه چند روش مهم را بررسی می‌کنیم.

جایگزینی مقدار NaN با یک مقدار ثابت

در مثال زیر، تمام مقادیر NaN با عدد صفر جایگزین می‌شوند:

خروجی این کد به شکل زیر خواهد بود:

در اینجا، با استفاده از fillna(0) تمام سلول هایی که مقدار NaN داشتند با عدد صفر جایگزین شدند. البته به جای صفر می‌توان از هر مقدار دلخواه دیگری نیز استفاده کرد.

پر کردن مقادیر گمشده با استفاده از مقدار قبلی یا بعدی

برای پر کردن مقادیر گمشده بر اساس ردیف های قبلی یا بعدی، می‌توان از روش های pad (رو به جلو) و backfill (رو به عقب) استفاده کرد. این روش ها به صورت زیر عمل می‌کنند:

روش عملکرد
pad یا fill مقدار قبلی را به سلول گمشده منتقل می‌کند
bfill یا backfill مقدار بعدی را به سلول گمشده منتقل می‌کند

مثال:

خروجی این کد به شکل زیر خواهد بود:

در این مثال، مقادیر گمشده به صورت خودکار با مقدار ردیف قبلی (از بالا به پایین) پر شده اند. این روش برای زمانی مفید است که ترتیب زمانی یا منطقی داده‌ها اهمیت دارد.

حذف مقادیر گمشده از داده‌ها

اگر هدف شما این باشد که به سادگی ردیف هایی را که شامل مقادیر گمشده هستند از مجموعه داده حذف کنید، می‌توانید از تابع dropna() استفاده کنید. این تابع به صورت پیش‌فرض با axis=0 عمل می‌کند، یعنی اگر هر مقدار در یک ردیف NA باشد، آن ردیف به طور کامل حذف می‌شود.

مثال:

خروجی این کد به شکل زیر خواهد بود:

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

جایگزینی مقادیر گمشده یا عمومی با مقدار مشخص

در بسیاری از مواقع، نیاز داریم یک مقدار خاص یا عمومی را در داده‌ها با مقدار دیگری جایگزین کنیم. این کار با استفاده از متد replace() به سادگی قابل انجام است.

جایگزینی مقدار NaN با یک عدد ثابت نیز رفتاری مشابه تابع fillna() دارد.

مثال:

خروجی این کد به شکل زیر خواهد بود:

در اینجا، عدد 1000 در ستون دوم با عدد 10 جایگزین شده و عدد 2000 در ستون اول نیز با عدد 60 جایگزین شده است. متد replace() برای پاکسازی داده‌های دارای مقادیر غیرعادی یا خارج از محدوده کاربرد فراوان دارد و به شما امکان می‌دهد داده‌های خود را استانداردسازی و بهینه کنید.

5/5 - (1 امتیاز)

راستی! برای دریافت مطالب جدید در کانال تلگرام یا پیج اینستاگرام سورس باران عضو شوید.

پکیج آموزش پروژه محور لاراول و طراحی وب سایت کانون قلم چی
  • انتشار: ۱۷ مرداد ۱۴۰۴

دسته بندی موضوعات

آخرین محصولات فروشگاه

مشاهده همه

نظرات

بازخوردهای خود را برای ما ارسال کنید