از Pista Academy حمایت کنید
خلاصه آموزشی
مرور سریع مفاهیم اصلی پیش از تماشای کامل یا برای جمعبندی بعد از آموزش.
در جلسه 11 آموزش Pista Academy، مدرس به بررسی میسینگ ولیوها در دادهها با استفاده از کتابخانه Polars میپردازد. ابتدا نحوه شناسایی میسینگ ولیوها در ستونهای مختلف با دستوراتی مانند `null_count` و `select` مورد بررسی قرار میگیرد. سپس به فیلتر کردن ردیفهایی که میسینگ ولیو دارند و حذف یا جایگزین کردن آنها با مقادیر دیگر میپردازد. همچنین، استراتژیهای مختلفی مانند فوروارد و بکوارد برای پر کردن میسینگ ولیوها معرفی میشوند و امکان مشخص کردن محدودیتهایی برای این استراتژیها نیز وجود دارد.
نکات کلیدی
شناسایی و تحلیل میسینگ ولیوها در ستونهای داده با استفاده از دستوراتی مانند `null_count` و `select`
استراتژیهای مختلفی مانند فوروارد و بکوارد برای پر کردن میسینگ ولیوها و امکان مشخص کردن محدودیتهای آنها
فیلتر کردن ردیفهایی که میسینگ ولیو دارند و حذف یا جایگزین کردن آنها با مقادیر دیگر
استفاده از Polars برای پر کردن میسینگ ولیوها به صورت کارآمد و سریع
متن ویدیو
متن زمانبندیشده این جلسه برای مرور، جستجو و دسترسی سریعتر.
سلام عرض میکنم خدمت دوستان عزیز. بریم سراغ ادامه بحثمون. میخوایم بریم سراغ
میسینگ ولیوها داخل با پولار ببینیم
چهجوری میتونیم با میسینگ ولیوها کار
بکنیم. اول دستوری که میخوایم ببینیم اینه
که ما ببینیم که تو هر ستونمون چند تا
میسینگ ولیو داریم. یه دستوری داریم به
نام نال کانت.
مثلاً داره میگه که تو بعضی ستونا یه دونه د تا داریم و همین تقریباً خیلی کمه یکی د
تا دونهست تو بعضی ستونا
و اونقدر این میسینگ ولیو خدا رو شکر
نداریم
پیدا بکنید مثلاً مثالا مثال مثلاً میگم که
میخوام دنبال میسینگ ولیوها بگردم ببینم
کدوم مشتریا میسینگ ولیو دارن میام میگم
ف. سلکت
بعد میگم که یه آرایهش پاس میدم پی. ک میگم برو کاستومر نیمو بیار میخوام ببینم
کدوم مشتریا میسینگ ولیو داره کاستومر
نیمو بیار
بعد
برو چک کن ببین پی. کال
مثلاً اینجا کدوم میسینگ ولیو داشتیم
برو بین تو سیتی آیا از نال داریم یا نه کدوم ناله
اسمشو عوض کن الیاس به سیتی
از نا
بعد حالا همینو مثلاً یه ستون دیگه هم چک
کنیم
هت ۵ نفر نشون میده مثلاً داره میگه که این مشتری
سیتیش نال نیست
کانتریشم نال نیست این مشتری این نال نیست
این نال نیست اما این مشتری بچهها
کانتریش ناله
یعنی کانتری نداره مشتری هر کی که هست
حالا درین و هاف این دقیقاً نگاه کن اینا
کانتیشناله
پس اینجوری شما میتونید بفهمید کدوم مشتریاتون کدوم ستونش نال دارد یا ندارد
مثلاً
کار دیگه چیه میتونیم انجام بدیم؟
بگیم که
مثلاً من فقط میخوام اون ردیفهایی رو به من بده که کتگوریش ناله. حالا اینجا
کتگوری نال که نداریم ما درسته؟ نه
کتگورشون نال نیست مثلاً فقط اونا رو
میخوام که شیپ دیتشون ناله فرض کن
چهجوری این کارو بکنیم میام میگم
دیدا یه فیلتر میذارم روش چون میخوام یه دیتامون فیلتر کنیم دیگه میگم برو روی
ستون
شیپ دیت
د تا نال دارم روی ستون برو ستونش شیپ دیت ببین اونایی که ناله رو
بهت نگه دار نالا رو
و بعد سلکت کن همه ستونا ارم نمیخوام بیاری مثلاً کاستومر نیمو میخوام
دیگه خود شیپ دیتو مثلاً بیار برام که ببینم سدسنجی کنم ناله یا نه پرافتشم
مثلاً بیار کتگوری پولشم بیار مهم نیست
چند تا رو بذاریم
یه جا آ اینجا ویرگوله الان این د تا مشتری شیپ دیتشون ناله و
اینم اطلاعات دیگهشون
پس اینجوری شما میتونید اونایی که نال
هستنو بکشید بیرون
اگه بخوایم چک کنیم که همه مقادیرش نال باشه فرض کنید کل ردیف نال باشه چهجوری
اینو پیدا کنیم اینا
اینم راهحل سادهای داره تو پلاس میگم که
دی. فیلتر یه فیلتر میخوام بذارم که برو
چک کن ببین پی. انیزنتال
پی. آ
داد مثلاً ۵ تا اگه هست پ تاشو نشون میده فکر نکنم ما ستونی داشته باشیم که
چی رفت آورد آها ببخشید من اشتباه گفتم
میره چک میکنه ردیفهایی که حتی یه دونه
نالم داشته باشه برا ما میاره این نه
اینکه همه ستون توش نال باشه حتی اگر یه
دونه نالم داشته باشه برا ما میاره اینا
همشون یه دونه نال حداقل دارن من اشتباه
گفتم خب
شما میتونید حتی دراپ کنید این ردیفها رو بچهها مثلاً میخواید بگید که اونایی که
شیپ دیت ندارنو نال کن اونایی که شیپ
دیتشون ناله ردیفو دراپ کن کلاً میگید
دیفات
دراپ نال
و اینجا میتونید مشخص کنید بگید مثلاً سابست
چه ستونایی من چک کنم اگه نال داشت پاک
کنم میگم که فقط برو
اینا این شیپ دیتو چک کن انتظارم این د تا
ستون من پاک شه بچهها
خب اونایی که شیپ دیتشون نال بودو حذف کرد د تا ردیفم حذ این ۹۴ تا ۹۲ تا
میتونه حتی بگیرید بر اساس چند تا ستون
چک کنه
مثلاً اگه من اینجا شیپ سابست ندم بچهها هر ستونی که هر ردیفی که یه دونه نالم
داشته باشه پاک میکنم چند تا شد؟ ۸۹ تا
چند تاش کم کرد؟
۵ تاشو کم کرد فکر کنم درسته؟
بذارید
مطمئن شم
۹۴ تا بود شد
۸۹ تا ۵ تا کم کرد
خب
یعنی ۵ تا ردیف داشتم که حداقل یه دونه
نال داشتم درسته همینا بود دیگه اینا این
بود دیگه اینا این بود همین ۵ تا ردیفو
حذف کرد ردیف ی و س۳ و ۴ و ۵ و ۸ حذف کرد
پس اینجوری میتونید شما حفظ حذف بکنید.
حتی این
حتی این امکانو دارید که در حقیقت این چیز
کن حتی این امکانو دارید که ریپلیس بکنید
بچهها. یعنی چی؟ یعنی بیاید یه چیزی رو
به جای اون نال ولیو بذارید خب
بذارید من یه دیتای جدید درست کنم خودم یز
کوچیکتر از این باشه که بتونیم راحتتر
کار کنیم باهاش.
[گلویش را صاف میکند] یا میگم که دیتا مساویه مثلاً دیتا خودمون
درست کنم
نیم
دو نقطه مثلاً
سپیده مهدی
و رضا مثلاً بعد این از این دیگه چی بدیم بشیم مثلاً
سنشون تو سن مثلاً یه چند تا نال میذارم
میتونم چند تا اینجا نال بذارم
۲۵
نو
سه تاشو نار گذاشتم اسکورشونم بدیم
۸۵ ۹۵یم
یه نالم اینجا بندازیم
۸۸ ۹۲
خب حالا اینو تبدیل میکنم به دیتا فریم
خیلی ساده با پلارس میشه این کارو کرد
تا فریم خب که یه سری مقادیر نال داره حالا میخوام چیکار کنم؟ میخوام که
مقادیر نالشو پر بکنم میام میگم که یه
دیتا فریم جدید میسازم اسمشو میذارم دتا
دف. فیلد مثلاً
مساوی.
ویت
کالمز
بعد میگم که پl. کال ستون نیم
فیل
نال
اگه اسم نداشت به جاش بذار آنناون
یه دونه ستون ایج داریم اگه سنش معلوم نبود مقدارشو بذار صفر صفر
اگر اسکورش معلوم نبود
مقدارشو بذار یک
اینا شده صفر اینم شده ی پس میتونید اینجا ریپلیس بکنید میسینگ
ولیو رو با هر چیزی که مدنظرتونه خب
حتی بچهها بچهها میتونید استراتژیهای مختلف در نظر بگیرید براش. مثلا
من یه بار دیگه یه دونه جدید درست کنم از
این میگم که اگر ستون نیم که نال نداریم
بذارید اینو بردارم
اگه اج نال داشت وقتی داری پر میکنی
میخوام یه استراتژی استفاده بکنی
مثلاً برو سراغ فوروارد
استراتژی فوروارد الان بهتون خودش میگم
یعنی چی برای ایج
برو استراتژی بکوارد
احتمالاً بتونید حدس بزنید یعنی چی
توی سنگ گفتم فوروارد یعنی چی یعنی هر جا نال دیدی مثلاً الان نگاه کن مهدی صفر بود
۲۵ بود قبلی اینو داد ۲۵
حامد صفر بود قبلی ۳۰ بود اینم داد ۳۰
اینم شد ۳۰
اما توی اسکور گفتم بکوارد
کدوم کدوم نال بود؟ سارا چیو داد؟ اینو
داد بهش. یعنی جلوییشو داد بهش. عملاً
برعکس این چیزیه که اینجا میخونید. یعنی
اگه فوروارد بود مقدار قبلیشو میگیره.
اگه بکارد بود مقدار بعدیشو میگیره. با
مقدار بعدیش میاد پر میکنه. اینم یه
استراتژیه.
بعد دیگه
آها میتونید بچهها توی این استراتژی لیمیت
مشخص کنید. مثلاً اینجا رو نگاه کنید من د
تا خالی داشتم دیگه گفته بودم فوروارد
یعنی باید با قبلیش پر کن اینو گذاشت ۳۰
بعدی رم گذاشت ۳۰ میتونم بگم نه فقط یه
دونه رو پر کن د تا پشت هم بود دومی رو
دیگه دست نزن اینجا میتونم لیمیت بذارم
فک کن اینو دیگه دست نزد چون د تا پشت هم بود اولی رو با قبلیش پر کرد ولی با
بعدیشو دیگه دست نزد شما میتونید لیمیت
رم مشخص کنید
یه چیز جالب دیگه هم داره بذارید اینو بنویسم بعد تو مثال با هم ببینیم
خب یه پارامتر دیگه دار به نام اور
میتونید بگید که فیل نال مثلاً
استراتژیمون باشه فور
اور نسبت به ستون نیم ببینیم چی میشه سنلا
سر جاشون مونده خب حالا من میام یه کار میکنم
میام
مهدی و سارا و حامدو همه رو میکنم مهدی بذار من یه بار این دیتامو دوباره بکنم
مهدیو این سه تا رو پشتم میکنم یه
حالا بیایم اینجا ببینیم چه تغییر میکنه. مهدی اول ناله.
نال بود. آره هیچ کاری باهاش نداشت.
[صدای خرناس] اما مهدی دوم شد ۳۰.
۳۰ بود. ببخشید این ۳۰ بود. مهدی بعدی که نال بود نگاه میکنه به قبلیش. اگر مهدی
باشه اینو می مقدارشو میگیره این نال بود
نیومد مقدار قبلیشو بگیره چرا؟ چون
اسمشپیدهست مهدی نیست به شرطی میاد مقدار
قبلیشو میگیره که هم اسم خودش باشه یعنی
گفتم اسمش باید یکی باشه اینم مثلاً یه
استراتژی دیگهست
این کارم میتونید بکنید
پس میتونید بگید که به یه ستون دیگه نگاه
کن اگر اون ستونش یکی بود برو مقدارشو
بگیر اگه نبود دست بهش نزن
اینم از
مورد مثال دیگهای نمیمونه. اینم از میسینگ ولیو. بریم بیایم جلسه بیم سراغ
مبحث بعدی. خداحافظ.
پرسشهای رایج
پاسخ کوتاه و مستقیم به پرسشهایی که معمولاً هنگام یادگیری این موضوع مطرح میشوند.
برای شناسایی میسینگ ولیوها در ستونهای داده، میتوان از دستوراتی مانند `null_count` و `select` در کتابخانه Polars استفاده کرد.
استراتژیهای مختلفی مانند فوروارد و بکوارد برای پر کردن میسینگ ولیوها معرفی شدهاند.
بله، امکان مشخص کردن محدودیتهایی برای استراتژیهای پر کردن میسینگ ولیوها وجود دارد.
آخرین بهروزرسانی محتوای متنی:
آیا با کندی سرعت Pandas در پردازش فایلهای سنگین مشکل دارید؟ در این دوره جامع، به سراغ کتابخانه قدرتمند Polars میرویم؛ ابزاری که بازی تحلیل داده در پایتون را تغییر داده است! 🔥 در این دوره آموزشی، ما از مفاهیم اولیه شروع میکنیم و تا مباحث پیشرفته مثل استفاده از GPU، کار با دیتابیس و پردازش بیش از یک میلیارد رکورد داده پیش میرویم. اگر دیتا ساینتیست، تحلیلگر داده یا برنامهنویس پایتون هستید، یادگیری Polars برای شما ضروری است. آنچه در این دوره یاد خواهید گرفت: آشنایی کامل با DataFrames و توابع Polars مقایسه عملی سرعت Polars و Pandas (تست ۱ میلیارد رکورد) نحوه استفاده از GPU برای افزایش سرعت پردازش اتصال به دیتابیس و مصورسازی دادهها (Visualization) انجام ۲ پروژه کامل و کاربردی 📌 سرفصلها : کار با دیتا فریمها خواندن و کار با فایلها انتخاب و تغییر ستونها توابع تجمیعی فیلتر کردن دادهها گروهبندی و مرتبسازی مدیریت دادههای گمشده ادغام و اتصال دادهها اتصال به پایگاه داده مصورسازی دادهها توابع پنجرهای استفاده از GPU در Polars تست پردازش ۱+ میلیارد رکورد! مقایسه Pandas و Polars در دادههای حجیم Polars و یادگیری ماشین پروژه اول پروژه دوم 🔔 فراموش نکنید که کانال را سابسکرایب کنید و نظرات خودتون رو درباره سرعت Polars برامون بنویسید! #python #polars #datascience #pandas #bigdata #پایتون #تحلیل_داده #دیتا_ساینس #برنامه_نویسی