
10 تک لاینر پایتون که گردش کار علم داده شما را تقویت می کند
تصویر توسط نویسنده | ایدئوگرام
پایتون محبوب ترین زبان برنامه نویسی علم داده است زیرا همه کاره است و از پشتیبانی عالی جامعه برخوردار است. با چنین استفاده ای، راه های زیادی برای بهبود گردش کار علم داده ما وجود دارد که ممکن است درباره آنها ندانید.
در این مقاله، ده راه حل مختلف پایتون را بررسی خواهیم کرد که کار علم داده شما را تقویت می کند.
آنها چه هستند؟ بیایید نگاهی بیندازیم.
1. مدیریت موثر داده های از دست رفته
داده های از دست رفته یک اتفاق ثابت در مجموعه داده ها است. این می تواند به دلایل مختلفی رخ دهد، از مدیریت ضعیف داده تا شرایط طبیعی و فراتر از آن. با این حال، ما باید تصمیم بگیریم که چگونه داده های از دست رفته را مدیریت کنیم.
برخی در دسته داده های گم شده قرار می گیرند یا همه آنها را حذف می کنند. با این حال، گاهی اوقات ما انتخاب می کنیم که داده های از دست رفته را پر کنیم.
اگر بخواهیم داده های از دست رفته را پر کنیم می توانیم از پانداها استفاده کنیم fillna
روش استفاده از آن آسان است زیرا ما فقط باید مقداری را که میخواهیم پر کنیم به عنوان جایگزینی برای مقدار گمشده ارسال کنیم، اما میتوانیم آن را کارآمدتر کنیم.
بیایید کد زیر را ببینیم.
df.fillna({col: df[col].median() برای col در df.select_dtypes(include=”number”).columns} | {col: df[col].fashion()[0] برای col در df.select_dtypes(include=”object”).columns}، inplace=True)
df.پر کردن({یقه: df[col].میانه() برای یقه در df.select_dtypes(شامل شود=“تعداد”).ستون ها} | {یقه: df[col].مد()[0] برای یقه در df.select_dtypes(شامل شود=“شیء”).ستون ها}، در محل=درست است) |
با ترکیب کردن fillna
با این شرط میتوانیم دادههای عددی گمشده را با میانه و دادههای دستهبندی گمشده را با حالت پر کنیم.
تنها با یک ردیف، می توانید به سرعت تمام داده های مختلف که در ستون های دیگر وجود ندارد را پر کنید.
2. حذف ویژگی های بسیار مرتبط
چند خطی زمانی اتفاق میافتد که مجموعه دادههای ما شامل بسیاری از متغیرهای مستقل باشد که بهجای هدف، با یکدیگر همبستگی زیادی دارند. این تأثیر منفی بر عملکرد مدل دارد، بنابراین ما میخواهیم ویژگیهای مرتبط کمتری را حفظ کنیم.
ما می توانیم ویژگی همبستگی پانداها را با انتخاب شرطی ترکیب کنیم تا به سرعت کمترین همبستگی را انتخاب کنیم. به عنوان مثال، در اینجا نحوه انتخاب ویژگی هایی است که حداکثر همبستگی پیرسون را با سایر موارد زیر 0.95 دارند.
df = df.loc[:, df.corr().abs().max()
df = df.loc[:, df.corr().abs().max() 0.95] |
ویژگی های همبستگی و آستانه را امتحان کنید تا ببینید آیا مدل پیش بینی خوب است یا نه.
3. ستون شرطی را اعمال کنید
ایجاد یک ستون جدید با شرایط متعدد گاهی اوقات می تواند پیچیده باشد و خط اجرای آنها می تواند طولانی باشد. با این حال، ما میتوانیم از روش اعمال پانداها برای استفاده از شرایط خاص هنگام توسعه ویژگی جدید در حالی که از چندین مقدار ستون استفاده میکنیم استفاده کنیم.
به عنوان مثال، در اینجا نمونه هایی از ایجاد یک ستون جدید وجود دارد که در آن مقادیر بر اساس شرایط سایر مقادیر ستون هستند.
df[‘new_col’] = df.apply(lambda x : x[‘A’] *x[‘B’] شش[‘C’] > 0 x دیگر[‘A’] +x[‘B’]محور=1)
df[‘new_col’] = df.اعمال شود(لامبدا x: x[‘A’] * x[‘B’] اگر x[‘C’] > 0 دیگر x[‘A’] + x[‘B’]، محور=1) |
می توانید شرایط دیگری را امتحان کنید که نیازهای شما را برآورده می کند.
4. یک عنصر مشترک و متفاوت پیدا کنید
پایتون انواع داده های داخلی بسیاری از جمله Set را ارائه می دهد. نوع داده Set یک داده منحصر به فرد است که فهرست نامرتب داده ها را نشان می دهد اما فقط با عناصر منحصر به فرد. اغلب برای بسیاری از عملیات روی داده ها از جمله یافتن عناصر مشترک استفاده می شود.
برای مثال مجموعه زیر را داریم:
set1 = {“سیب”، “موز”، “گیلاس”، “خرما”، “انجیر”} set2 = {“گیلاس”، “خرما”، “انجیر”، “انجیر”، “انگور”}
مجموعه 1 = {“سیب”، “موز”، “گیلاس”، “تاریخ”، “انجیر”} مجموعه 2 = {“گیلاس”، “تاریخ”، “بزرگ”، “انجیر”، “انگور”} |
در ادامه می خواهیم عنصر مشترک بین این دو مجموعه را پیدا کنیم. می توانیم از روش زیر استفاده کنیم.
برای بیرون رفتن:
{‘گیلاس’، ‘خرما’، ‘انجیر’}
{“گیلاس”، “تاریخ”، “انجیر”} |
این یک راه ساده اما مفید برای یافتن عنصر مشترک است. برعکس، ما همچنین میتوانیم عناصری را پیدا کنیم که در دو مجموعه متفاوت هستند.
برای بیرون رفتن:
زمانی که نیاز به یافتن عناصر مشترک و متفاوت دارید، از آنها در جریان داده خود استفاده کنید.
5. ماسک های بولی برای فیلتر کردن
هنگام کار با آرایه NumPy و شی مشتق شده از آن، گاهی اوقات می خواهیم داده ها را بر اساس نیاز خود فیلتر کنیم. در این صورت میتوانیم یک ماسک Boolean برای فیلتر کردن دادهها بر اساس شرط بولی که تعریف کردیم ایجاد کنیم.
فرض کنید لیست داده های زیر را داریم.
وارد کردن numpy به عنوان داده np = np.array([10, 15, 20, 25, 30, 35, 40, 45, 50])
واردات ناتوان به عنوان n.p. داده ها = n.p..نقاشی([10, 15, 20, 25, 30, 35, 40, 45, 50]) |
سپس می توانیم از ماسک بولی برای فیلتر کردن داده های مورد نظر خود استفاده کنیم. مثلا ما فقط اعداد زوج می خواهیم.
برای بیرون رفتن:
نقاشی([10, 20, 30, 40, 50])
نقاشی([10, 20, 30, 40, 50]) |
این نیز اساس فیلتر پانداها است. با این حال، یک ماسک بولی می تواند همه کاره تر باشد زیرا در آرایه NumPy نیز کار می کند.
6. وقوع تعداد لیست
هنگام کار با یک لیست یا هر داده دیگری با چندین مقدار، گاهی اوقات می خواهیم فراوانی هر مقدار را بدانیم. در این حالت می توانیم از تابع شمارنده برای شمارش خودکار آنها استفاده کنیم.
برای مثال، داشتن لیست زیر را در نظر بگیرید.
داده = [10, 10, 20, 20, 30, 35, 40, 40, 40, 50]
داده ها = [10, 10, 20, 20, 30, 35, 40, 40, 40, 50] |
سپس می توانیم از تابع شمارنده برای محاسبه فرکانس استفاده کنیم.
از مجموعه ها واردات شمارنده شمارنده(داده)
از آنجایی که مجموعه ها واردات شمارنده شمارنده(داده ها) |
برای بیرون رفتن:
شمارنده ({10:2، 20:2، 30:1، 35:1، 40:3، 50:1})
شمارنده({10: 2، 20: 2، 30: 1، 35: 1، 40: 3، 50: 1}) |
نتیجه یک فرهنگ لغت برای وقوع شمارش است. زمانی که نیاز به محاسبه فرکانس سریع دارید از آنها استفاده کنید.
7. استخراج دیجیتالی متن
عبارات منظم (Regex) لیست های تعریف شده ای از کاراکترها هستند که با یک الگو در متن مطابقت دارند. آنها معمولاً زمانی استفاده می شوند که می خواهیم دستکاری متن خاصی را انجام دهیم، و این دقیقاً همان کاری است که می توانیم با این یک خط انجام دهیم.
در مثال زیر می توانیم از ترکیب Regex و map برای استخراج اعداد از متن استفاده کنیم.
import re list(map(int, re.findall(r’\d+’, “Sample123Text456”)))
واردات مربوط به فهرست(نقشه(بین المللی، مربوط به.همه چیز را پیدا کن(r‘\d+’، “Sample123Text456”))) |
برای بیرون رفتن:
مثال بالا فقط برای داده های اعداد صحیح کار می کند، اما یادگیری بیشتر در مورد عبارات منظم می تواند به شما قدرت و انعطاف پذیری برای تطبیق این خط واحد برای موارد استفاده چندگانه بدهد.
8. لیست تودرتو را صاف کنید
هنگامی که داده های خود را برای تجزیه و تحلیل آماده می کنیم، ممکن است با داده های لیست حاوی لیستی در لیست مواجه شویم که می توانیم آن را تودرتو بنامیم. اگر چیزی شبیه به این پیدا کردیم، ممکن است بخواهیم آن را برای تجزیه و تحلیل یا تجسم بیشتر داده ها صاف کنیم.
برای مثال، فرض کنید لیست تودرتو زیر را داریم.
nested_list = [
[1, 2, 3]،
[4, 5]،
[6, 7, 8, 9]]
nested_list = [ [1, 2, 3]، [4, 5]، [6, 7, 8, 9] ] |
سپس می توانیم لیست را با کد زیر صاف کنیم.
برای بیرون رفتن:
[1, 2, 3, 4, 5, 6, 7, 8, 9] |
با این لیست داده های تک بعدی، می توانید در صورت لزوم عمیق تر و به روشی ساده تر تجزیه و تحلیل کنید.
9. فهرست فرهنگ لغت
آیا تا به حال با موقعیتی مواجه شده اید که چندین لیست داشته باشید و بخواهید اطلاعات را در یک فرم فرهنگ لغت ترکیب کنید؟ به عنوان مثال، مورد استفاده ممکن است به اهداف نقشه برداری ویژگی یا کدگذاری مربوط باشد.
در این صورت میتوانیم فهرستی را که داریم به دیکشنری تبدیل کنیم zip
تابع
برای مثال لیست زیر را داریم.
میوه = [‘apple’, ‘banana’, ‘cherry’]مقادیر = [100, 200, 300]
میوه = [‘apple’, ‘banana’, ‘cherry’] ارزش ها = [100, 200, 300] |
با ترکیب zip و dict می توانیم دو لیست بالا را در یک لیست ترکیب کنیم.
برای بیرون رفتن:
{‘سیب’: 100، ‘موز’: 200، ‘گیلاس’: 300}
{“سیب”: 100، “موز”: 200، “گیلاس”: 300} |
این یک راه سریع برای ترکیب دو عنصر داده در یک ساختار واحد است، که سپس می تواند برای پیش پردازش بیشتر داده ها استفاده شود.
10. ادغام فرهنگ لغت
هنگامی که ما یک فرهنگ لغت حاوی اطلاعات مورد نیاز برای پیش پردازش داده ها داریم، باید آنها را ترکیب کنیم. به عنوان مثال، ما اقدام لیست به دیکشنری را مانند بالا انجام دادیم و دیکشنری های زیر را دریافت کردیم:
fruit_mapping = {‘سیب’: 100، ‘موز’: 200، ‘گیلاس’: 300} مبلمان_مپینگ = {‘میز’: 100، ‘صندلی’: 200، ‘مبل’: 300}
میوه_نگاشت = {“سیب”: 100، “موز”: 200، “گیلاس”: 300} مبلمان_نقشه برداری = {“نقاشی”: 100، “صندلی”: 200، “کاناپه”: 300} |
سپس می خواهیم آنها را با هم ترکیب کنیم زیرا این اطلاعات می تواند در کل مهم باشد. برای این کار می توانیم از تک خط زیر استفاده کنیم.
{**نقشه_میوه، **نقشه_مبلمان }
{**میوه_نگاشت، **مبلمان_نقشه کشی } |
خروجی>> {‘سیب’: 100، ‘موز’: 200، ‘گیلاس’: 300، ‘میز’: 100، ‘صندلی’: 200، ‘مبل’: 300}
بیرون رفتن>> {“سیب”: 100، “موز”: 200، “گیلاس”: 300، “نقاشی”: 100، “صندلی”: 200، “کاناپه”: 300} |
همانطور که می بینید، این دو فرهنگ لغت به یک فرهنگ لغت تبدیل شده اند. این در بسیاری از مواردی که نیاز به گروه بندی داده ها دارند بسیار مفید است.
نتیجه گیری
در این مقاله، ده راه حل مختلف پایتون را بررسی کردیم که گردش کار علم داده شما را بهبود می بخشد. این تک لاینرها بر روی موارد زیر تمرکز داشتند:
- مدیریت موثر داده های از دست رفته
- حذف ویژگی های بسیار مرتبط
- اعمال ستون مشروط
- یک عنصر مشترک و متفاوت پیدا کنید
- ماسک های بولی برای فیلتر کردن
- وقوع تعداد لیست
- استخراج دیجیتال از متن
- لیست تودرتو را صاف کنید
- فهرست فرهنگ لغت
- ادغام لغت نامه ها
امیدوارم این کمک کرده باشد!