از کتابخانه Polars در پایتون برای اجرای پروژههایی مانند تجزیه و تحلیل داده استفاده میشود. این کتابخانه توسط زبان «Rust» نوشته شده است. اما کاربران پایتون به راحتی میتوانند از آن مانند پانداس استفاده کنند. اگر تا به حال از پایتون برای اجرای پروژههای تحلیل داده استفاده کرده باشید، حتما نام «Pandas» را شنیدهاید. پانداس کتابخانه بسیار محبوبی است. زیرا کاربری آسانی دارد. اما با ظهور زبان برنامه نویسی Rust کتابخانه جدیدتر و سریعتر Polars برای کار با دیتافریمها معرفی شد. کتابخانه Polars با هدف ارائه عملکرد بسیار بالا، اجرای پردازش داده به صورت چندهستهای و سریعتر کردن فرایندهای تحلیل داده طراحی شده است. برنامه نویسانی که میخواهند در پروژههای خود از تحلیل داده استفاده کنند، بهتر است روش کار با Polars را هم بلد باشند.
آنچه در این مطلب میآموزید:
-
متوجه میشوید که کتابخانه Polars چرا و با چه هدفی طراحی شده است.
-
روش نصب و استفاده از کتابخانه Polars در کدهای پایتون را میآموزید.
-
با توابع و متدهای مشهور کتابخانه Polars آشنا شده و روش نوشتن کد با آنها را یاد میگیرید.
-
با ویژگی اصلی Polars، یعنی همکاری نزدیک با دیگر ابزارهای پایتون آشنا میشوید.
-
به راحتی یاد میگیرید Pandas و Polars را با هم مقایسه کرده و گزینه مناسب را انتخاب کنید.
-
با مزایای مهم استفاده از کتابخانه Polars در پایتون آشنا میشوید.



در این مطلب از مجله فرادرس، کتابخانه Polars در پایتون را بررسی میکنیم. ابتدا این کتابخانه قدرتمند را معرفی کرده و ویژگیهای مهم آن را توضیح میدهیم. سپس روش نصب و راهاندازی آن را با کمک مثالهای سادهای بررسی میکنیم. بعد از آن هم رایجترین توابع کار با داده را در Polars معرفی میکنیم. در نهایت این کتابخانه را با کتابخانه پانداس مقایسه کرده و نکات مثبت و منفی هر کدام را توضیح میدهیم.
کتابخانه Polars در پایتون چیست؟
کتابخانه Polars، ابزاری بسیار مفید برای کار بر روی حجم انبوه دادههاست. با اینکه این کتابخانه توسط زبان Rust نوشته شده است اما با کمک کیت گسترش پایتون به راحتی میتوان از آن استفاده کرد. Polars با هدف سادهسازی کار با مجموعه دادههای خیلی بزرگ و ارائه رابط کاربری ساده برای مدیریت و تحلیل دادهها تولید شده است.
این کتابخانه، دو بخش اصلی دارد.
- هسته Polars: وظیفه این قسمت، مدیریت توابع اصلی برای کار بر روی دادههاست.
- بخش I/O در Polars: این قسمت مسئول مدیریت دادههای ورودی و خروجی است. یعنی به کاربر کمک میکند دادهها را در قالبهای مختلفی مانند «CSV» و «JSON» و «Parquet» و «Delta» بخواند و بنویسد.

پایتون یکی از محبوبترین زبانها در زمینه تحلیل داده است. زیرا انعطافپذیر است و کتابخانههای بسیار زیادی هم دارد. با بزرگتر و پیچیدهتر شدن حجم دادهها به ابزارهای کارآمدتر و سریعتری هم احتیاج پیدا میکنیم. کتابخانه Polars در پایتون، ابزاری قدرتمند و اوپن سورس است که به منظور اجرای با کیفیت پروژههای تحلیل داده طراحی شده.
| موضوع | توضیحات |
|---|---|
| زبان توسعه | Rust |
| استفاده در پایتون | قابل استفاده با کمک کیت گسترش پایتون |
| هدف اصلی | ارائه رابط کاربری ساده و راحتتر کردن کار با دادههای بسیار بزرگ |
| هسته Polars | مدیریت و اجرای توابع اصلی مربوط به داده |
| بخش I/O | مدیریت ورودی و خروجی داده مانند خواندن CSV و JSON و Parquet و Delta |
| کاربرد | اجرای سریع کار بر روی مجموعهدادههای بزرگ |
تا به اینجای متن با ماهیت و عملکرد کتابخانه Polars در پایتون آشنا شدهاید. در ادامه هم با روش نصب و استفاده آن آشنا شده و تفاوتهای این کتابخانه با پانداس را متوجه میشوید. در صورتی که به مطالعه این دست از مطالب علاقه دارید، پیشنهاد میکنیم اپلیکیشن مجله فرادرس را در گوشی خود نصب بکنید.
برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.
نصب و راهاندازی Polars
برای نصب Polars میتوانیم از «pip» کمک بگیریم. pip در پایتون مسئول مدیریت پکیجهاست. رابط کاربری خط فرمان را باز کرده و دستور زیر را اجرا بکنید.
بارگذاری مجموعه داده در پایتون
Polars برای کمک به بارگذاری داده از منابع مختلف، روشهای مناسب و راحتی را ارائه داده است. برای مثال میتوانیم از فایلهای CSV، فایلهای Parquet و دیتافریمهای پانداس بدون هیچ مشکلی استفاده کنیم. روشهای خواندن فایلهای CSV و Parquet در این کتابخانه شبیه به روشهای مورد استفاده در کتابخانه پانداس هستند.
در کادر پایین، فایل «diamond.csv» را با کمک یک خط کد و دستور read_csv() در Polars از اینترنت واکشی کردهایم.
بعد از نوشتن و اجرای کدهای بالا، مفسر پایتون خروجی زیر را نمایش میدهد.

دادههای این کتابخانه از نوع Polars.DataFrame هستند.
بعد از نوشتن و اجرای کدهای بالا، خروجی زیر، نمایش داده میشود. البته به شرطی که کد بالا را در محیط ژوپیتر نوت بوک وارد بکنید. برای مشاهده خروجی در محیط کد ادیتوری مانند ویژوال استودیو کد باید این دستور را در داخل تابع print() بنویسید.
polars.dataframe.frame.DataFrame
یادگیری علم داده با کمک پایتون در فرادرس
«علم داده» (Data Science) یکی از علوم مدرن و جذاب است. بخشهای آکادمیک، کسبوکارها و دولتها توجه زیادی به این حوزه از دانش میکنند. زیرا اطلاعات استخراج شده از علم داده تاثیر بالایی در تصمیمگیری برای اجرای امور استراتژیک و اقتصادی دارد. دانشمندان داده جایگاههای شغلی مناسب، جذاب و البته درآمد خوبی دارند. در نتیجه، افراد بسیار زیادی میخواهند دانشمند داده بشوند. برای یادگیری این علم باید مهارتها و تواناییهای مختلفی بدست بیاورید. پس لازم است که از منابع درست و متنوعی استفاده کنید.

فرادرس با هدف کمک به یادگیری هرچه بهتر علم داده با کمک پایتون، فیلمهای بسیار خوبی طراحی و منتشر کرده است. پایتون یکی از قدرتمندترین زبانها در این زمینه است. استفاده از فریمورکها و ابزارهای پایتون نه تنها سرعت پردازش دادهها را بالاتر میبرد، بلکه پیچیدگیها و هزینههای پروژه را نیز کاهش میدهد. استفاده از فیلمهای آموزشی فرادرس هم مقرونبهصرفه است و هم یادگیری را سریعتر و عمیقتر میکند. در فهرست زیر، چند مورد از فیلمهای مربوط به آموزش علم داده در پایتون را معرفی کردهایم.
در بخش بعدی کاربردیترین توابع کار با دادهها در Polars را معرفی کردهایم.
رایجترین توابع کار با داده در Polars
Polars برای کمک به کار بر روی دادهها مجموعه جامعی از توابع مختلف را فراهم کرده است. توسعهدهندگان پایتون با کمک این ابزارها میتوانند کارهایی مانند موارد زیر را به سادگی انجام بدهند.
- انتخاب و فیلتر کردن دادهها
- مرتبسازی مقادیر
- تبدیل نوع
- حذف دادهها

در ادامه این بخش از مطلب، چند مورد از توابع مربوط به کار بر روی دادهها را همراه با روش استفاده از آنها بررسی میکنیم.
انتخاب و فیلتر کردن دادهها
توابع مربوط به فیلتر کردن دادهها بر اساس ستون یا ردیف فرق میکنند. در این قسمت هر دو تکنیک را بررسی کردهایم.
فیلتر کردن دادهها بر اساس ستون
برای انتخاب ستونهای خاصی از دیتافریم میتوانیم متد select() را به کار ببریم. در کد پایین با کمک مثال سادهای روش استفاده از این دستور را بررسی کردهایم.
بعد از اجرای کدهای بالا، مفسر پایتون خروجی زیر را نمایش میدهد.

نکته: برای دیدن خروجی دقیقا شبیه به تصویر بالا لازم است که این کدها را در ژوپیتر نوتبوک اجرا بکنید. این کد و تمام کدهای بعدی برنامه به صورت خطبهخط مجزا در ژوپیتر نوتبوک اجرا شدهاند. در غیر این صورت، باید خط آخر را در داخل تابع print() قرار بدهید.
فیلتر کردن دادهها بر اساس ردیف
برای فیلتر کردن ردیفها بر اساس شرایط مشخص، میتوانیم از متد filter() استفاده کنیم. برای مثال در کدهای زیر، تمام ردیفهایی را فیلتر کردهایم که مقدار ستون Carat Weight در آنها بیشتر از 1.0 است.
بعد از اجرای کدهای بالا، مفسر پایتون خروجی زیر را نمایش میدهد.

مرتبسازی دادهها
برای مرتبسازی دادههای ذخیره شده در دیتافریم بر اساس یک یا چند ستون مختلف، میتوانیم از متد sort() در کتابخانه polars استفاده کنیم. در کادر پایین مثال سادهای را درباره استفاده از متد sort() نوشتهایم.
بعد از اجرای کدهای بالا، مفسر پایتون خروجی زیر را نمایش میدهد.

متدهای زیادی برای کار بر روی دادهها در پایتون وجود دارند. بعضی از این متدها به طور انحصاری در کتابخانههای پایتون هستند و بعضی دیگر بدون نیاز به ایمپورت کردن کتابخانهها قابل استفادهاند. برای آشنایی با متدهای پایتون پیشنهاد میکنیم که مطلب مربوط به آن را در مجله فرادرس مطالعه بکنید.
مدیریت مقادیر گمشده
برای مدیریت «مقادیر گمشده» (Missing Values)، روشهای مختلفی وجود دارد. برای مثال میتوان ردیفهای دارای داده ناقص را حذف کرد. یا اینکه این دادهها را با مقدارهایی به عنوان پیشفرض جایگزین کرد. در این قسمت از مطلب، این دو تکنیک پراستفاده را در Polars بررسی کردهایم.
حذف ردیفهای شامل مقادیر گمشده
توسعهدهندگان با کمک متد drop_nulls() میتوانند ردیفهای شامل مقادیر گمشده را حذف کنند.
بعد از اجرای کدهای بالا، مفسر پایتون خروجی زیر را نمایش میدهد.

جایگزین کردن مقادیر گمشده با مقدار پیشفرض
جایگزین کردن مقادیر گمشده با مقدار پیشفرض یکی دیگر از روشهای مدیریت این نوع داده است. برای انجام این کار میتوانیم از متد fill_nulls() استفاده کنیم. این متد مقادیر گمشده را با مقادیر پیشفرض پُر میکند.

دستهبندی دادهها بر اساس ستونها
برای دستهبندی دادهها بر اساس ستونهای خاص، میتوانیم از متد group_by() استفاده کنیم. در مثال پایین، دادهها را بر اساس ستون Cut گروهبندی کرده و میانگین ستون Price را برای هر گروه محاسبه میکنیم:
بعد از اجرای کدهای بالا، مفسر پایتون خروجی زیر را نمایش میدهد.

دستور join در کتابخانه Polars در پایتون
کتابخانه Polars ابزارهای انعطافپذیری برای ترکیب و ادغام دیتافریمها فراهم کرده است. با کمک این ابزارها میتوانیم دادههای دیتافریمهای مختلف را با یکدیگر ادغام کرده یا به هم متصل بکنیم. برای ترکیب دو دسته داده مجزا با کمک Polars میتوانیم از متد join() استفاده کنیم.
در کادر پایین، مثال سادهای درباره اجرای دستور «Inner Join» بین دو دیتافریم مختلف را بررسی کردهایم. در این مثال برای اعمال دستور Inner Join از «ستون کلید مشترک» (Shared Key Column) استفاده میکنیم.
بعد از اجرای کدهای بالا، مفسر پایتون خروجی زیر را نمایش میدهد.
shape: (2, 3)
┌─────┬─────────┬─────┐
│ id ┆ name ┆ age │
│ --- ┆ --- ┆ --- │
│ i64 ┆ str ┆ i64 │
╞═════╪═════════╪═════╡
│ 2 ┆ Bob ┆ 25 │
│ 3 ┆ Charlie ┆ 30 │
└─────┴─────────┴─────┘
در فهرست پایین، کدهای مثال بالا را توضیح دادهایم.
- ابتدا دو دیتافریم df1 و df2 را با کمک pl.DataFrame ساختهایم.
- دیتافریم اول با نام df1، دو ستون با نامهای id و name دارد.
- دیتافریم دوم هم با نام df2، دو ستون با نامهای id و age دارد.
- سپس با استفاده از متد join() و ستون id عملیات Inner Join را اجرا میکنیم. برای ترکیب این دو دیتافریم، ستون id را به عنوان ستون کلید انتخاب کردهایم.
ادغام و تعامل پذیری
کتابخانه Polars با سایر کتابخانههای مشهور پایتون به خوبی کار میکند. در نتیجه تحلیلگران داده میتوانند به صورت همزمان از ابزارها و ویژگیهای متنوع و زیادی در کنار هم استفاده کنند. در این قسمت از مطلب، دو بخش مهم در زمینه ادغام بین ابزارها را بررسی میکنیم.
- روش کار Polars با دیگر کتابخانهها
- روش کار Polars با کتابخانه تخصصی Pandas
هر دو ابزار Polars و Pandas، گزینههای بسیار خوبی برای اجرای پروژههای تحلیل داده هستند. برای آشنایی هرچه بیشتر با این حوزه از دانش، پیشنهاد میکنیم که فیلم آموزش رایگان تحلیل داده چیست؟ توصیف مسیر یادگیری همراه با بررسی پروژه نمونه را در فرادرس مشاهده کنید. به منظور کمک به مخاطبان مجله، لینک مربوط به این فیلم آموزشی را در پایین نیز قرار دادهایم.
هر کدام از موارد بالا شامل نکات خاص و مهمی هستند که در ادامه توضیح میدهیم.
روش کار Polars با دیگر کتابخانهها
Polars با کتابخانههایی مانند «NumPy» و «PyArrow» به راحتی کار میکند. به خاطر وجود این ویژگی، برنامه نویسان میتوانند از قابلیتهای ابزار مختلف در زمان کار بر روی پروژههای تحلیل داده استفاده کنند.
- NumPy: در زمان کار با NumPy، کتابخانه Polars میتواند به سرعت دادهها را از دیتافریم Polars به آرایههای NumPy و برعکس تبدیل کند. وجود این ویژگی به توسعهدهندگان کمک میکند از توابع قدرتمند علمی و ریاضی NumPy به صورت مستقیم بر روی دادههای Polars استفاده کنند.
- PyArrow: کتابخانه Polars با PyArrow هم به خوبی کار میکند. با کمک PyArrow، کتابخانه Polars میتواند با سرعت زیاد دادهها را بین خودش و دیگر ابزارهای استفاده کننده از Arrow جابهجا کند. در نتیجه، استفاده از دادههای ذخیره شده در قالب Arrow ساده میشود. مزیت دیگر این ویژگی آن است که Polars در زمان کار با این دادهها سرعت بالای خود را حفظ کند.
با برقراری ساده ارتباط بین کتابخانههای قدرتمند پایتون، تحلیلگران داده به راحتی میتوانند دیتافریمهای خود را از حالتهای مختلف به دیگر حالتها تغییر داده و انواع عملیات را بر روی آنها اجرا کنند.
تبدیل دیتافریم Polars به Pandas
Polars به راحتی میتوانید دیتافریمهای خاص خودش را به دیتافریمهای پانداس تبدیل کند. با وجود این ویژگی به راحتی میتوانیم از توابع مختلف این دو کتابخانه قدرتمند در پروژههای خود استفاده بکنیم.

در کادر پایین، مثال سادهای از این عملیات را پیادهسازی کردهایم.
بعد از اجرای کدهای بالا، خروجی زیر در کنسول پایتون نمایش داده میشود.
column_A column_B
0 1 apple
1 2 banana
2 3 orange
مقایسه Pandas و Polars
Pandas کتابخانه بسیار مشهور و محبوبی است. زیرا انعطافپذیری بالا و کاربری سادهای دارد. اما در هنگام کار با مجموعه دادههای بزرگ، تقریبا کند عمل میکند. زیرا این کتابخانه از «پردازش تکنخی» (Single-Threaded Processing) استفاده میکند. با بزرگتر شدن دادهها زمان بیشتری هم برای اجرای پروژه مصرف میشود. این مسئله کارایی کتابخانه را کاهش میدهد.

اما Polars با این هدف ساخته شده است که مجموعه دادههای بزرگ را به راحتی مدیریت کند. ویژگیهایی مانند «ارزیابی تنبل» (Lazy Evaluation) و «اجرای موازی» (Parallel Execution) کدها به Polars کمک میکند تا حجم انبوهی از دادهها را با سرعت بیشتری پردازش کند. Polars با استفاده از قدرت پردازشی هستههای CPU وظایف مختلف را به شکل موازی اجرا میکند. در نتیجه عملکرد و کیفیت کار بالاتری را ارائه میدهد.
| ویژگی | Pandas | Polars |
|---|---|---|
| محبوبیت | بسیار مشهور و محبوب | جدیدتر اما طراحی شده برای دادههای بزرگ |
| سرعت پردازش داده | کندتر هنگام کار با دادههای بزرگ | بسیار سریع برای دادههای بزرگ |
| نوع پردازش | «پردازش تکنخی» (Single-Threaded Processing) | چندنخی یا «اجرای موازی» (Parallel Execution) |
| سازوکار بهینهسازی | ندارد | ارزیابی تنبل (Lazy Evaluation) |
| مناسب برای دادههای بزرگ | کمتر مناسب | بسیار مناسب |
چگونه کار با کتابخانه های پایتون را در فرادرس یاد بگیریم؟
پایتون یکی از مشهورترین و پرطرفدارترین زبان های برنامه نویسی در دنیا است. یکی از دلایل محبوبیت بالای این زبان وجود کتابخانههای بسیار متنوع آن است. این کتابخانهها وظایف متنوعی را انجام میدهند. از انجام محاسبات ریاضی تا طراحی صفحات وب و غیره هر کدام کتابخانههای مخصوص به خود را دارند. علم داده و هوش مصنوعی هم جزو زیرشاخههای پرطرفدار و مدرن پایتون هستند. برای کار در این حوزهها نیز کتابخانههای قدرتمندی معرفی شدهاند. فرادرس به منظور کمک به دانشجویان ایرانی فیلمهای آموزشی و علمی بسیار خوبی را در این زمینه طراحی کرده است.
در فهرست پایین، چند مورد از فیلمهای فرادرس برای آموزش کتابخانههای پایتون معرفی شدهاند.
برای مشاهد فیلمهای بیشتر بر روی تصویر زیر کلیک کنید.

ویژگیهای مهم کتابخانه Polars در پایتون
Polars توسط زبان Rust نوشته شده است. اما هدف اصلی آن این است که به توسعهدهندگان پایتون کمک کند تا فریمورک مقیاسپذیر و کارآمدی برای اجرای پروژههای مربوط به علم داده داشته باشند. حتی بعضی از افراد به این کتابخانه به عنوان جایگزین مناسبی برای کتابخانه مشهور و محبوب Pandas نگاه میکنند. توابع و امکانات Polars انجام بسیاری از وظایف مربوط به تحلیل دادهها را سادهتر کردهاند.
در فهرست پایین، بعضی از ویژگیهای کلیدی و مزایای استفاده از کتابخانه Polars را نوشتهایم.
- سرعت و کارآمدی: هدف اصلی از ساختن کتابخانه Polars رسیدن به کارایی بیشتر بود. این کتابخانه از ویژگیهایی مانند «پردازش موازی» (Parallel Processing) و «بهینهسازی حافظه» (Memory Optimization) بهره میبرد. وجود این تواناییها به Polars کمک میکند تا وظایف مربوط به مجموعهدادههای بزرگ را با سرعت بسیار بیشتری نسبت به روشهای سنتی انجام بدهد.
- تواناییهای کار با داده: Polars شامل مجموعه ابزارهای کامل و جامعی برای کار بر روی دادهها است. این ابزارها شامل توابعی برای فیلتر کردن، مرتبسازی، دستهبندی، اتصال و تجمیع دادهها است. البته Polars با اینکه جدیدتر است، اما تمام ویژگیهای پانداس را پوشش نمیدهد. میتوان گفت که در حدود ۸۰٪ از رایجترین عملیات پانداس توسط Polars پوشش داده شدهاند.
- سینتکس واضح: Polars از سینتکس ساده و بسیار واضحی استفاده میکند. درنتیجه یادگیری آن ساده بوده و به راحتی هم میتوان با آن کار کرد. ظاهر سینتکس این کتابخانه شبیه به پانداس است. بنابراین کاربران پایتون به راحتی میتوانند خود را با آن سازگار بکنند.
- ساختار مناسب برای دیتافریمها و سریها: بخش اصلی کتابخانه Polars شامل کار با دیتافریمها و سریها است. در این زمینه Polars از روشی آشنا و قدرتمند برای کار با دادههای جدولی استفاده میکند. در Polars میتوان عملیات مربوط به دیتا فریم را به صورت پشت سر هم اجرا کرد. یعنی چندین دستور مختلف را به شکل زنجیرهوار پشت سر هم نوشت. با این روش، اجرای عملیات مختلف بر روی دادهها کارآمدتر و سادهتر میشود.
- پشتیبانی از «ارزیابی تنبل»: کتابخانه Polars از تکنیک «ارزیابی تنبل» (Lazy Evaluation) پشتیبانی میکند. به معنای آن که برای رسیدن به سرعت بیشتر و مصرف کمتر حافظه، کوئریها را بهینهسازی میکند. Polars کوئریهای مختلف را بررسی کرده و روش مناسب را برای افزایش سرعت و کاهش مصرف حافظه پیدا میکند. در عوض، پانداس از «ارزیابی مشتاق» (Eager Evaluation) استفاده میکند. در این تکنیک، دستورات بلافاصله پس از ارسال اجرا میشوند.
جمعبندی
در این مطلب از مجله فرادرس با کتابخانه Polars در پایتون آشنا شدهایم. این کتابخانه، ابزار قدرتمندی برای اجرای عملیات سریع بر روی دادهها است. سرعت بالای Polars و عملکرد بسیار مناسب آن در زمان کار بر روی مجموعه دادههای بزرگ دو ویژگی اصلی این کتابخانه هستند. با کمک Polars اجرای کار بر روی مقدار بسیار زیاد داده، به صورت ساده و حرفهای انجام میشود. دستورات Polars ساده و شفاف هستند. در ضمن از دیتافریمها هم استفاده میکند. بنابراین توسعهدهندگان پایتون به راحتی میتوانند با رابط کاربری Polars ارتباط برقرار کنند.
ویژگی دیگر Polars این است که به خوبی با سایر کتابخانههای پایتون مانند NumPy و PyArrow کار میکند. داشتن این ویژگی Polars را قدرتمندتر میکند. زیرا کاربران میتوانند از ابزارهای بسیار متنوع و زیادی در کنار هم استفاده کنند. Polars به راحتی دیتافریمهای خودش را به دیتافریمهای پانداس تبدیل میکند. در نتیجه همکاری بسیار خوبی با فریمورک پانداس انجام میدهد. فرقی نمیکند که با دادههای پیچیده و مجموعه دادههای خیلی بزرگ کار میکنید یا به دنبال رسیدن به سرعت بیشتر هستید. مجموعهای از ابزارهای قوی برای رسیدن به بهترین نتیجهها در پروژههای تحلیل داده توسط کتابخانه Polars در اختیار توسعهدهندگان قرار داده شده است.
source
