کتابخانه Pandas و 6 گزینه برای نمایش فرمت در آن که باید به خاطر بسپارید
یکی از کتابخانههایی که متخصصان علوم داده، تحلیلگران داده و مهندسان داده به صورت متدوال از آن در استفاده میکنند، کتابخانه Pandas است. این کتابخانه میتواند فریم داده را با فرمت HTML چاپ کند و اگر شما هم مثل من از JupyterLab/ Jupyter Notebook یا Colab گوگل استفاده میکنید، میدانید که این ویژگی کتابخانه Pandas یکی از برجستهترین ویژگیهای این کتابخانه است.
کتابخانه Pandas از HTML و CSS از پیش تعریفشده استفاده میکند و به همین دلیل نگرانی در مورد فرمتهای بیمورد است. اما گاهی اوقات هم میخواهیم این کتابخانه (خروجی) را با فرمتی به غیر از فرمتهای پیشفرض را نمایش دهد. همانطور که احتمالاً میدانید برای انجام این کار میتوانید از pd.options.display استفاده کنید.
بسیاری از افراد با قابلیتهای بیشمار کتابخانه Pandas آشنایی دارند، اما در هنگام استفاده از ان، گزینههای آن را به خاطر نمیآوردند. بیش از 30 گزینه مختلف فقط در pd.options.display وجود دارد. به همین دلیل لامز است حتماً آنها را به خاطر بسپارید.
در مقاله پیشرو مربوط به یکی از کتابخانههای یادگیری عمیق است و قرار است 6 گزینه مختلف کتابخانه Pandas را به شما معرفی میکنم و به شما توصیه میکنم برای ارتقای مهارتتان در کدنویسی آنها را به خاطر بسپارید. در این صورت لازم نیست هر بار که میخواهید از آنها استفاده کنید وقتتان را با جستوجو در گوگل و Stack Overflow هدر دهید.
توجه داشته باشید که من از pd به عنوان نام مستعار Pandas استفاده میکنم و فکر میکنم افراد زیادی مثل من از import pandas as pd استفاده میکنند.
1-تعیین حداکثر تعداد ردیفها
pd.options.display.max_rows
اگر یک دیتافریم با تعداد زیادی ردیف داشته باشید، کتابخانه Pandas خلاصه ردیفها را در وسط صفحه نمایش میدهد. عدد پیشفرض 60 است.
همانگونه که در تصویر فوق مشاهده میکنید، اگر دیتافریمی با بیش از 60 ردیف داشته باشید، 50 ردیف میانی نشان داده نمیشوند.
pd.DataFrame(np.random.randn(61, 5))
اگر عددی انتخابی ما بیشتر از تعداد ردیفهای دیتافریم باشد، تمامی ردیفها نشان داده میشوند. برای مثال، اگر تعداد ردیفها را بر روی 100 تنظیم کنیم:
pd.options.display.max_rows = 100
2- تعیین حداکثر تعداد ستونها
pd.options.display.max_columns
علاوه بر ردیفها، ستونها را هم میتوانیم خلاصه کنیم و آنها را نشان ندهیم. عدد پیشفرض برای حداکثر تعداد ستونها 20 است:
اگر این عدد پیشفرض را تغییر ندهیم و دیتافریمی با بیش از 20 ستون داشته باشیم، باز هم نمیتوانیم ستونهای میانی را ببینیم.
pd.DataFrame(np.random.randn(5, 21))
اگر بخواهیم تمامی ستونها نمایش داده شوند باید مقدار حداکثر تعداد ستونها را افزایش دهیم:
pd.options.display.max_columns = 50
3- تعیین پهنای حداکثری سلولها
pd.options.display.max_colwidth
علاوه بر تعداد ردیفها و ستونها، پهنای هر سلول را هم میتوان مشخص کرد. به طور پیشفرض کتابخانه Pandas فقط محتوای سلولهایی را نشان میدهد که حداکثر پهنای آنها 50 باشد. به عبارت دیگر، سلولهایی که بیش از 50 کاراکتر در آنها وجود داشته باشد، خلاصه میشوند.
pd.DataFrame({ 'col': [''.join(list("Towards Data Science.") * 3)] })
من در کد فوق فقط رشته “Towards Data Science” را سه بار تکرار کردم که در مجموع 63 کاراکتر دارد و به همین دلیل بخش آخر آن نشان داده نشده است.
اگر حداکثر پهنای ستونها را بر روی 80 تنظیم کنیم، کل متن نمایش داده میشود.
4- تعیین حداکثر تعداد ستونهایی که در ()info نمایش داده میشوند
pd.options.display.max_info_columns
افراد زیادی از ()df.info برای چک کردن پروفایل دیتافریم استفاده میکنند. با این حال برخی مواقع این کد تمامی ستونها را در نتایج نمایش نمیدهد. و دلیل آن هم این است که در متد ()info حداکثر تعداد ستونهایی که خلاصه میشوند، محدود است. تعداد این ستونها برابر با 100 است.
در این قسمت به صورت تصادفی یک دیتافریم تصادفی با بیش از 100 ستون ایجاد میکنیم و برای خلاصه کردن آن از متد ()info استفاده میکنیم.
df = pd.DataFrame(np.random.randn(5, 101)) df.info()
انتظار چنین چیزی را نداشتیم. برای دیدن “Dtype” و “Non-NullCount” تمامی ستونها میتوانیم از طریق گزینه max info columns اقدام کنیم.
pd.options.display.max_info_columns = 150 df.info()
5- تعیین Display Precision
pd.options.display.precision
اگر توجه کرده باشید، کتابخانه Pandas بر تعداد اعداد اعشاری که میتوانند در یک دیتافریم نشان داده شوند، محدودیت اعمال کرده است. در این قسمت از دیتافریم df ،که در قسمت قبلی ایجاد کردیم، استفاده میکنیم:
به اولین ستون، یعنی عدد اعشاری 939665 / -0 نگاه کنید. دلیل عدم نمایش کامل این عدد این است که کتابخانه Pandas بعد از رقم اعشاری فقط 6 عدد را نشان میدهد. اگر عدد را به طور کامل از دیتافریم بگیریم، خواهیم دید که تعداد اعداد اعشاری آن بیشتر است: 9396645167554308 / -0
df.iloc[0, 0]
البته جای نگرانی نیست و این ویژگی بر اعدادی که بعداً در الگوریتمهایتان استفاده خواهید کرد، اثر نمیگذارد و فقط در نمایش اعداد خلاصه میشوند. اگر بخواهیم اعداد را با جزئیات بیشتری ببینیم چه؟ عدد این گزینه را بر روی 5 تنظیم میکنیم.
pd.options.display.precision = 15
در این حالت عدد به طور کامل نمایش داده میشود.
6- تنظیم فرمت اعشاری
pd.options.display.float_format
ممکن است بخواهیم کارِمان را به فرد دیگری نشان دهیم و یا اینکه دیتافریم شکیلتری داشته باشیم. به عقیده من این موضوع اهمیت زیادی دارد زیرا هرچه ارائه دیتافریم منظمتر و شکیلتر باشد، به بینشهای بهتری دست پیدا خواهیم کرد. و در مقابل ارائهای نامنظم منجر به اتلاف منابع و فرسودگی ذهنی میشود.
فرض کنید اعدادی را که در نمونه دیتافریم فوق استفاده کردیم، باید به درصد باشند و فقط دو عدد بعد از ممیز اعشاری برای ما اهمیت دارد. در این حالت میتوانیم از این گزینه برای تنظیم فرمت نمایش استفاده کنیم.
pd.options.display.float_format = '{:.2f}%'.format
این فرمت به اندازه کافی انعطافپذیری دارد و شما میتوانید آن را متناسب با نیازتان، برای مثال بر روی {(2f.,:)$} تنظیم کنید تا پول رایج را نشان دهید.
جمعبندی
در این مقاله 6 گزینه نمایشی یکی از کتابخانه های یادگیری عمیق یعنی کتابخانه Pandas را به شما معرفی کردم و بهتر است که آنها را به خاطر بسپارید. این کتابخانه بیش از 30 گزینه نمایشی دارد اما فکر میکنم کاربران بیشتر از این سه مورد استفاده میکنند. اگر نمیخواهید وقتتان را با جستوجو در گوگل هدر دهید، بهتر است این 6 گزینه را به خاطر بسپارید.