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


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

پیشنیاز تحلیل داده با پایتون
قبل از شروع به بررسی این مطلب باید مهارت قابل قبولی درباره روش کار با «ژوپیتر نوتبوک» (Jupyter Notebook) داشته باشید. البته روش کار با این ابزار ساده است و به راحتی میتوان آن را یاد گرفت. Jupyter Notebook ابزاری محبوب و پرکاربرد برای فعالیت در حوزههایی مانند تحلیل داده، هوش مصنوعی و غیره با پایتون است. در صورت نیاز، بهجای آن میتوانید از «ژوپیتر لب» (JupyterLab) هم استفاده کنید.
تحلیل داده یکی از رشتههای بسیار محبوب در بین توسعهدهندگان پایتون است. در این رشته وظایف بسیار متنوعی از موارد ساده گرفته تا بسیار پیچیده قرار دارند. با توجه به مجموعه دادهای که بر روی آن کار میکنیم و سطحی از اطلاعات که به دنبال آن هستیم، باید کارهای منظم و مشخصی را در زمان اجرای تحلیل داده انجام بدهیم. برای غلبه بر این مسائل پیچیده و سخت در زمان تحلیل داده لازم است رویکرد خود را به شکل استراتژیک و حرفهای طراحی کنیم. به این فرایند «جریان کار تحلیل داده» (Data Analysis Workflow) گفته میشود.
جریان کار تحلیل داده
جریان کار تحلیل داده به مجموعه مراحلی گفته میشود که برای اجرای پروژههای تحلیل داده دنبال میکنیم. پیادهسازی هر کدام از این مراحل با توجه به ماهیت پروژه و مجموعه داده فرق میکند. اما پیروی از جریان کار (توافق شده) به اعضای تیم کمک میکند تا وظایف هر مرحله را به خوبی بشناسند و روند اجرای پروژه را راحتتر دنبال کنند.
پیروی از جریان کار تحلیل داده مزایای زیادی دارد. در فهرست زیر مهمترین این مزایا را توضیح دادهایم.
- به دلیل انجام این کار، روش اختصاصی هر کسی برای انجام کار نسبت به تغییرات احتمالی پروژه در آینده انعطافپذیر میشود.
- دنبال کردن مجموعهای از مراحل از پیش تعریف شده، فرایند کار را بسیار منظمتر میکند.
- در نتیجه احتمال رویدادن اشتباه یا فراموشی مراحل انجام کار کمتر میشود.
- با مستندسازی روند انجام کار میتوانیم از پروژه خود در مقابل دادههای احتمالی آینده هم استفاده کنیم.
- نکته بعدی هم این است که رعایت جریان کار مشخص، خوانایی و مقیاسپذیری پروژههای تحلیل داده را افزایش میدهد.
خواندن داده ها به عنوان اولین قدم
کتابخانه پانداس یکی از محبوبترین گزینهها در زمان تحلیل داده با پایتون است. برای نصب کردن پانداس در ژوپیتر نوتبوک فقط کافی است که ابتدا سلول خالی بسازید. سپس کد زیر را در آن نوشته و اجرا کنید.
!python -m pip install pandasبا اجرا کردن این سلول، کتابخانه Pandas در سیستم نصب میشود. البته از این دستور میتوان در خط فرمان ویندوز یا ترمینال لینوکس هم استفاده کرد. فقط باید علامت تعجب ! ابتدای آن را حذف کنید.

خواندن دادههای CSV با Pandas
با کمک کتابخانه Pandas به راحتی میتوانید انواع فایلهای CSV را باز کرده و دادههای آن را بخوانید. با این کار دادههای ذخیره شده در فایل CSV به دیتافریمهای اختصاصی Pandas تبدیل میشوند. در کد پایین، روش انجام این کار توضیح داده شده است.
نکات مهم کد بالا را در فهرست پایین توضیح دادهایم.
- خط اول در کد بالا مربوط به وارد کردن کتابخانه Pandas به محیط برنامه نویسی است. استفاده از نام مستعار pd برای ارجاع سادهتر به کتابخانه Pandas در کدها رفتاری استاندارد و قراردادی است. این کار الزامی نیست اما تقریبا تمام توسعهدهندگان حرفهای آن را انجام میدهند.
- در خط دوم هم فایل فرضی james_bond_data.csv توسط تابع read_csv() خوانده میشود. این تابع نه تنها دادهها را از درون فایل میخواند بلکه میتواند هدینگ دادهها را مرتب کرده و حتی تمام ردیفها را به صورت منظم اندیسگذاری کند.
- به عنوان پارامتر تابع read_csv() باید نام فایل را همراه با آدرس کامل آن به صورت رشته بنویسیم. آدرس فقط وقتی حذف میشود که دیتاست در داخل همان دایرکتوری باشد که فایل ژوپیتر نوتبوک قرار دارد.
- سپس پانداس با کمک متد convert_dtypes() تمام دادههای قابل استفاده در دیتافریمها را (با توجه به نوع داده آنها) بهنیهسازی میکند.
تا به این قسمت از مطلب، شناخت اولیه نسبتا خوبی درباره تحلیل داده و کاربرد آن در پایتون بدست آوردهاید. در ادامه با مراحل مختلف اجرای پروژههای تحلیل داده یک به یک آشنا میشوید. در صورت تمایل به مطالعه مطالبی مانند این مورد، پیشنهاد میکنیم که حتما اپلیکیشن مجله فرادرس را بر روی دستگاههای همراه خود نصب کنید.
برای نصب اپلیکیشن رایگان مجله فرادرس، کلیک کنید.
فرض کنید فایل CSV حاوی ستونی از اعداد صحیح است که چند مقدار در آن مفقود شدهاند. به صورت پیشفرض، به «مقدارهای مفقود شده» (Missing Values) مقدار ثابت اعشاری numpy.NaN اختصاص داده میشود. در نتیجه Pandas نوع دادهی این ستون را «Float64» در نظر میگیرد. بنابراین تمام اعداد صحیح موجود در آن ستون، برای حفظ یکپارچگی، به اعداد اعشاری تبدیل میشوند. از کتابخانه پانداس میتوان برای خواندن سایر فایلها هم استفاده کرد. در فهرست زیر چند مورد از رایجترین این فایلها را معرفی کردهایم.
- فایلهای JSON: برای خواندن فایلهای JSON با کمک Pandas از تابع read_json() کمک میگیریم.
- فایلهای Excel: برای خواندن فایلهای Excel با کمک Pandas از تابع read_excel() کمک میگیریم.
- فایلهای Parquet: برای خواندن فایلهای Parquet با کمک Pandas از تابع read_parquet() استفاده میکنیم.
- فایلهای HTML: برای خواندن فایلهای HTML با کمک Pandas از تابع read_html() کمک میگیریم.
مهمترین نکات این بخش و توابع کاربردی برای خواندن دادههای مختلف را در جدول زیر نوشتهایم.
| نوع فایل | تابع مربوطه |
|---|---|
| CSV | read_csv() |
| JSON | read_json() |
| Excel | read_excel() |
| Parquet | read_parquet() |
| HTML | read_html() |
چگونه تحلیل داده با پایتون را در فرادرس یاد بگیریم؟
فرادرس برای آموزش تحلیل داده با کمک پایتون، فیلمهای بسیار خوبی طراحی و منتشر کرده است. زیرا پایتون به یکی از قدرتمندترین زبانها در حوزه دیتاساینس و تحلیل داده تبدیل شده است. استفاده از ابزارهای زبان پایتون، سرعت پردازش و تحلیل را بالا میبرد. در ضمن به کاهش پیچیدگیها و هزینههای پروژه نیز کمک میکند. این ویژگیها به محبوبیت پایتون برای انجام پروژههای تحلیل داده کمک کردهاند. فرادرس به عنوان بزرگترین دانشگاه آنلاین فارسیزبان در جهان، مجموعه فیلمهای آموزشی قوی و متنوعی را برای تکنولوژیهای مختلف طراحی و تولید کرده است.

تحلیل داده از جمله تکنولوژیهای تحت پوشش فرادرس است. بنابراین، مجموعه داده تخصصی برای آموزش تحلیل داده در فرادرس تولید شده است. از آنجا که پایتون یکی از پرکاربردترین و قدرتمندترین زبانهای برنامهنویسی در زمینه تحلیل داده به شمار میرود، فرادرس دورههای تخصصی متعددی را نیز برای آموزش تحلیل داده با پایتون منتشر کرده است. استفاده از فیلمهای آموزشی فرادرس علاوه بر مقرونبهصرفه بودن، میتواند فرایند یادگیری را سریعتر و عمیقتر کند.
در فهرست زیر، چند مورد از دورههای مرتبط با علم داده و تحلیل داده با پایتون معرفی شدهاند.
- فیلم آموزش ساخت عامل هوشمند تحلیلگر داده با LangChain و Ollama در پایتون به صورت گامبهگام و عملی + گواهینامه
- فیلم آموزش شناسایی ناهنجاری داده با پایتون، از روشهای پایه تا پیشرفته + گواهینامه
- فیلم آموزش تجزیه و تحلیل داده های آماری با Streamlit در پایتون
- فیلم آموزش کاهش ابعاد با PSO در پایتون، تقلیل بعد داده با بهینه سازی ازدحام ذرات + گواهینامه
- فیلم آموزش رایگان آشنایی با شغل کارشناس تحلیل داده ها، وظایف، فرصت ها و بازار کار
در بخش بعدی چند نکته مهم درباره تحلیل دادههای عددی با نامپای را بررسی میکنیم.
تحلیل داده با پایتون به کمک NumPy
کتابخانه NumPy در پایتون برای انجام محاسبات عددی سریع و کارآمد استفاده میشود. این کتابخانه، آرایههای چندبعدی و توابع داخلی را فراهم میکند که اجرای عملیات ریاضی، تحلیل و پردازش داده در مقیاس بزرگ را سادهتر میکنند.
آرایهها در NumPy
آرایههای NumPy عناصری با نوع داده یکسان را ذخیره میکنند. این آرایهها میتوانند از چندین بعد تشکیل شوند. به تعداد بعدها «رتبه» (Rank) و اندازه هر بعد «شکل» (Shape) گفته میشود. در کادر پایین، نمونه سادهای از آرایه دو بعدی را در نامپای ساختهایم. سپس این آرایه را همراه با رتبه و شکل آن در خروجی چاپ میکنیم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Array:
[[1 2 3]
[4 5 6]]
Shape: (2, 3)
Dimensions: 2البته توجه کنید که تمام این کدها را در سلولهای ژوپیتر نوتبوک نوشتهایم. بنابراین برای مثال، دیگر نیازی به به ایمپورت کردن کتابخانه NumPy در کدهای بعدی نداریم.
ایجاد آرایههای NumPy
با استفاده از لیستها، تاپلها یا توابع داخلی مانند zeros() و ones() و arange() و empty() نیز میتوان آرایه ساخت. در کادر پایین، روش ساخت آرایه با کمک توابع معرفی شده را پیادهسازی کردهایم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Matrix A
[1 2 3]
Matrix B
[[0. 0.]
[0. 0.]]
Matrix C
[[1. 1.]
[1. 1.]]
Matrix D
[0 2 4 6 8]
Matrix E
[[4607182418800017408 4607182418800017408]
[4607182418800017408 4607182418800017408]]عملیات روی آرایههای NumPy
NumPy امکان انجام عملیات عنصر به عنصر را روی آرایهها فراهم میکند. انجام این کار کمک میکند تا محاسبات عددی نسبت به روشهای سنتی پایتون سریعتر و بهینهتر انجام شوند. البته رفتار عملگرهای پایه ریاضی در زمان کار با آرایهها نسبت به اعداد ساده کمی متفاوت هست. در فهرست پایین روش انجام عملیات اصلی ریاضی بر روی آرایهها را نوشتهایم.
- جمع: عناصر متناظر دو آرایه را با هم جمع میکند.
- تفریق: عناصر آرایهای را از آرایه دیگر کم میکند.
- ضرب: ضرب عنصر به عنصر را انجام میدهد.
- تقسیم: عناصر آرایهای را بر آرایه دیگر تقسیم میکند.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Addition: [11 22 33]
Subtraction: [ 9 18 27]
Multiplication: [10 40 90]
Division: [10. 10. 10.]ایندکسگذاری در آرایههای NumPy
ایندکسگذاری برای دسترسی به عناصر آرایه با استفاده از موقعیت آنها به کار میرود.

این روش شباهت زیادی به دسترسی به عناصر لیست در پایتون دارد، اما در آرایههای چندبعدی بسیار کاربردیتر است و کنترل بیشتری روی دادهها فراهم میکند.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
First element: 10
Last element: 40تکه تکه کردن آرایههای نامپای
با استفاده از تکنیک «Slicing» میتوان بخش مشخصی از آرایه را از داخل آن استخراج کرد. این روش برای کار بر روی زیرمجموعههای دلخواهی از دادهها بسیار مفید است. زیرا دسترسی به محدودههای خاصی از اطلاعات را آسانتر میکند.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Slice (1 to 3): [20 30 40]
First three elements: [10 20 30]پخشپذیری آرایههای NumPy
«پخشپذیری» (Broadcasting) یکی از ویژگیهای NumPy است. این ویژگی به توسعهدهندهگان اجازه میدهد عملیات ریاضی را روی آرایههایی با شکلهای متفاوت انجام دهند، بدون اینکه لازم باشد آنها را به صورت دستی هماندازه کنند. با کمک Broadcasting کدها سادهتر نوشته شده و عملیات روی دادهها با کارایی بیشتری انجام میشوند.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Add scalar: [6 7 8]
Broadcasting result:
[[11 21 31]
[12 22 32]
[13 23 33]]در فهرست پایین، مراحل اجرای کدهای بالا را نوشتهایم.
- ابتدا آرایه arr شامل اعداد 1 و 2 و 3 ساخته میشود.
- سپس با استفاده از عبارت arr + 5 ، عدد 5 به همه عناصر آرایه arr اضافه شده و نتیجه نمایش داده میشود.
- در ادامه، آرایه b را به صورت ستونی و آرایه c را به صورت یکبعدی تعریف میکنیم.
- با اجرای عبارت b + c، قابلیت Broadcasting در NumPy به کار گرفته شده است. در این فرایند، NumPy شکل آرایهها را به صورت خودکار با یکدیگر هماهنگ میکند و سپس عملیات جمع را روی عناصر انجام میدهد.
- در نهایت، ماتریس حاصل از این جمع روی خروجی چاپ میشود.
تحلیل داده با پایتون به کمک Pandas
Pandas یکی از کتابخانههای قدرتمند پایتون است. این کتابخانه برای کار با دادههای ساختاریافته (رابطهای یا برچسبدار) استفاده میشود. کتابخانه Pandas بر پایه NumPy ساخته شده است و ساختارهای داده انعطافپذیری دارد. در ضمن ابزارهایی نیز برای دستکاری داده، تحلیل و عملیات روی سریهای زمانی ارائه میدهد.
کتابخانه Pandas یکی از مهمترین و کلیدیترین ابزارها برای تحلیل داده با پایتون است. در این بخش چند مفهوم مهم این کتابخانه را معرفی کردهایم. اما در صورت تمایل یادگیری بهتر و کاملتر میتوانید فیلم آموزش «پانداس» (Pandas) برای تحلیل اطلاعات در پایتون + گواهینامه را در فرادرس مشاهده کنید. برای دسترسی راحتتر، لینک مستقیم این فیلم آموزشی در پایین نیز قرار داده شده است.
در فهرست پایین سه مورد از مهمترین ویژگیهای پانداس را نوشتهایم.
- برای کار با دادههای ساختاریافته و جدولی استفاده میشود.
- بر پایه NumPy ساخته شده است و عملکرد بالایی دارد.
- از پاکسازی داده، تبدیل و تحلیل پشتیبانی میکند.

سری در Pandas
سری در Pandas، آرایههای یکبعدی و برچسبداری هستند که میتوانند هر نوع دادهای را مانند اعداد صحیح، رشتهها، اعداد اعشاری و غیره در خود نگه دارند. در سریها هر عنصر «اندیس» (Index) مختص به خود را دارد.
در فهرست پایین، مهمترین ویژگیهای سریهای پانداس را نوشتهایم.
- نمایانگر یک ستون از دادهها است.
- از ایندکسگذاری و برچسبگذاری پشتیبانی میکند.
- میتواند انواع مختلف داده را ذخیره کند.
در کادر زیر، نمونه سادهای از سریهای Pandas را تعریف کرده و در خروجی چاپ میکنیم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
0 10
1 20
2 30
3 40
dtype: int64
First element: 10دیتافریم در Pandas
DataFrame ساختار دادهای دوبعدی و برچسبدار است که از سطر و ستون تشکیل میشود. این ساختار شبیه جدول یا «صفحه گسترده» (Spreadsheet) است.
در فهرست پایین مهمترین ویژگیهای دیتافریم در Pandas را نوشتهایم.
- دادههای جدولی را به شکل سطر و ستون نمایش میدهد.
- هر ستون میتواند نوع داده متفاوتی داشته باشد.
- پرکاربردترین ساختار در Pandas است.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Name Age
0 A 20
1 B 21
2 C 22
Column Access:
0 A
1 B
2 C
Name: Name, dtype: strماهیت دیتافریمهای Pandas با آرایههای دوبعدی معمولی تفاوت دارد. در این بخش دیتافریمها را به شکل ابتدایی معرفی کردیم. اما برای شناخت آرایههای دو بعدی در پایتون میتوانید مطلب مربوط به آنها را مجله فرادرس مطالعه کنید.
عملیات CRUD در Pandas
Pandas امکان انجام عملیات ایجاد، خواندن، بهروزرسانی و حذف دادهها را روی مقادیر ذخیره شده در فایلهای CSV به راحتی فراهم میکند. به همین دلیل برای اجرای پروژه بر روی دادههای واقعی و کاربردی بسیار مناسب است.

این عملیات با نام «CRUD Operations» شناخته میشوند.
- ایجاد (Create): ساخت DataFrame و ذخیره آن به صورت فایل CSV
- خواندن (Read): بارگذاری داده از فایل CSV
- بهروزرسانی (Update): تغییر مقادیر یا اضافه کردن ستونهای جدید
- حذف (Delete): حذف سطرها یا ستونها
تمام عملیات معرفی شده در بالا (CRUD) را یک به یک در کادر پایین پیادهسازی کردهایم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Read:
Name Age
0 A 20
1 B 21
2 C 22
Update:
Name Age City
0 A 21 Delhi
1 B 22 Mumbai
2 C 23 Pune
Delete:
Name Age
1 B 22
2 C 23تحلیل کاوشگرانه داده (EDA)
«تحلیل کاوشگرانه داده» (Exploratory Data Analysis | EDA) رویکردی است که برای شناسایی الگوهای عمومی به کار برده میشود. این الگوها شامل «دادههای پرت» (Outliers) و ویژگیهایی از دادهها هستند که شاید حتی غیرمنتظره باشند.
تمام این کارها برای اجرای پروژههای مربوط به علم داده ضروری هستند. تحلیل داده را میتوان به نوعی زیرمجموعهای از حوزه علم داده دانست. در صورت تمایل به آشنایی با این شاخه از دانش، پیشنهاد میکنیم که فیلم آموزش رایگان علم داده یا دیتا ساینس Data Science چیست؟ + فرصتهای شغلی را در فرادرس مشاهده کنید. به منظور کمک به مخاطبان مجله، لینک دسترسی مستقیم به این فیلم را در پایین نیز قرار دادهایم.
EDA اولین و یکی از مهمترین مراحل در تحلیل داده است. در این مرحله، موقعیت دادههای پرت و روابط بین متغیرها بررسی میشود تا تحلیلهای آماری معنادارتر طراحی شوند. برای مثال، «نمودارهای پراکندگی» (Scatter Plots) و ضرایب همبستگی میتوانند اطلاعات ارزشمندی درباره رابطه بین «جفتمتغیرها» (Pairs Of Variables) ارائه دهند. با این حال، زمانی که تعداد متغیرها زیاد باشد، روشهای «تجسم چندمتغیره» (Multivariate Visualization) نقش مهمتری پیدا میکنند. یعنی با کمک این روشها میتوان بینش عمیقتری از دادهها بدست آورد.

در این قسمت از مطلب، چند مورد از مهمترین وظایف مربوط به انجام تحلیل کاوشگرانه دادهها یا EDA را بررسی میکنیم.
۱- بررسی دادهها
Pandas مجموعهای از توابع سریع برای بررسی ساختار، خلاصهسازی و مشاهده محتوای دادهها فراهم میکند. این ابزارها به ما کمک میکنند قبل از شروع تحلیل، درک بهتری از دادهها داشته باشیم.
- info(): ساختار دیتاست، نام ستونها، نوع دادهها و مقادیر غیر تهی را نمایش میدهد.
- describe(): خلاصه آماری مانند میانگین، کمترین مقدار، بیشترین مقدار و انحراف معیار را نشان میدهد.
- Value_counts(): تعداد تکرار مقادیر یکتا در هر ستون را محاسبه میکند.
- head(): این متد، چند ردیف اول دیتاست را نمایش میدهد.
- tail(): این متد، چند ردیف آخر دیتاست را نمایش میدهد.
در کادر پایین روش کار تمام متدهای بالا را با کمک مثال سادهای بررسی کردهایم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Info:
<class 'pandas.DataFrame'>
RangeIndex: 5 entries, 0 to 4
Data columns (total 2 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Name 5 non-null str
1 Age 5 non-null int64
dtypes: int64(1), str(1)
memory usage: 212.0 bytes
None
Describe:
Age
count 5.00000
mean 20.80000
std 0.83666
min 20.00000
25% 20.00000
50% 21.00000
75% 21.00000
max 22.00000
Value Counts:
Name
A 2
B 2
C 1
Name: count, dtype: int64
Head:
Name Age
0 A 20
1 B 21
2 C 22
3 A 20
4 B 21
Tail:
Name Age
0 A 20
1 B 21
2 C 22
3 A 20
4 B 21۲- دستکاری داده در Pandas
Pandas مجموعهای از عملیات کاربردی برای انتخاب، سازماندهی و تبدیل دادهها ارائه میدهد. با وجود این عملیات انجام تحلیل داده سریعتر و کارآمدتر میشود. برای مثال میتوانیم به موارد زیر اشاره کنیم.
- اندیسگذاری و انتخاب
- گروهبندی و تجمیع
- ادغام و اتصال چند بلوک داده
- مرتبسازی
- فیلتر کردن دادهها
- متد set_index()
- متد reset_index()
در ادامه مطلب، روش استفاده از تمام موارد بالا را با کمک مثالهای سادهای بررسی میکنیم.
اندیسگذاری و انتخاب
تکنیک «اندیسگذاری و انتخاب» (Indexing and Selection) برای دسترسی به سطرها، ستونها یا زیرمجموعههای خاصی از داده استفاده میشود.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
0 A
1 B
2 C
Name: Name, dtype: str
Name Age
0 A 20
1 B 21گروهبندی و تجمیع
«گروهبندی و تجمیع» (Grouping and Aggregation) دادهها را بر اساس ستون مشخص دستهبندی کرده و سپس توابع تجمیعی مانند میانگین، جمع و غیره را روی آن اعمال میکند.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Name
A 82.5
B 90.0
Name: Marks, dtype: float64ادغام و اتصال چند بلوک داده
تکنیکهای «ادغام» (Merging) و «اتصال» (Joining) برای ترکیب چند DataFrame بر اساس ستونهای مشترک استفاده میشوند.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Name Age City
0 A 20 Delhi
1 B 21 Mumbaiمرتبسازی
با کمک کتابخانه پانداس میتوانیم مقادیر مجموعه داده را بر اساس مقادیر موجود در ستونها مرتبسازی کنیم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Name Marks
1 B 95
2 C 90
0 A 85فیلتر
از تکنیک فیلتر کردن برای انتخاب دادهها بر اساس شرایط خاص استفاده میشود.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Name Marks
1 B 95
2 C 90set_index
از تابع set_index() برای تعیین ستون خاصی به عنوان اندیس در دیتافریم استفاده میکنیم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Marks
Name
A 85
B 95
C 90reset_index
این تابع، ساختار اندیسگذاری دیتا فریم را به همان ساختار عددی پیشفرض برمیگرداند.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Name Marks
0 A 85
1 B 95
2 C 90۳- کار با دادههای گمشده
کار با «دادههای گمشده» (Missing Data) یکی از مراحل مهم در «تحلیل کاوشگرانه داده» (Exploratory Data Analysis | EDA) است. با این کار، کیفیت دادهها و دقت تحلیل تضمین میشود. کار با دادههای گمشده، شامل شناسایی مقادیر گمشده و استفاده از روشهای مناسب برای مدیریت آنها بدون تأثیر منفی بر نتایج است.

بررسی دادههای گمشده
«بررسی دادههای گمشده» (Checking Missing Data) برای شناسایی مقادیر null در مجموعه داده به کار میرود.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Name Age
0 False False
1 False True
2 False False
Name 0
Age 1
dtype: int64حذف مقادیر گمشده
روشهای مختلفی برای مدیریت دادههای گمشده وجود دارند که بسته به نیاز خود میتوانیم هر کدام از آنها را انتخاب کنیم. یکی از این روشها «حذف مقادیر گمشده» (Dropping Missing Values) است. در کادر پایین، روش اجرای این تکنیک را پیادهسازی کردهایم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Name Age
0 A 20.0
2 C 22.0
Name Age
0 A 20.0
1 B NaN
2 C 22.0۴- بررسی و مدیریت مقادیر تکراری
مقادیر تکراری میتوانند باعث تحلیل اشتباه و نتایج نادرست شوند. شناسایی و حذف دادههای تکراری یکی از مراحل مهم پاکسازی داده در «تحلیل کاوشگرانه داده» (EDA) است.
بررسی مقادیر تکراری
تکنیک «بررسی مقادیر تکراری» (Checking Duplicate Values) برای شناسایی دادهها یا ردیفهای تکراری در دیتاست به کار میرود.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
0 False
1 False
2 True
3 False
dtype: bool
1مدیریت مقادیر تکراری در دیتاست
کتابخانه پانداس، کاربرد بسیار زیادی در داده کاوی در پایتون دارد. یکی از ابزارهای مفید این کتابخانه متد drop_duplicates() است. از این متد برای پاک کردن ردیفهای دیتاست استفاده میکنیم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Name Age
0 A 20
1 B 21
3 C 22۵- تشخیص و مدیریت دادههای پرت
«تشخیص و مدیریت دادههای پرت» (Outlier Detection and Handling) یکی از مهمترین مراحل قبل از اجرای عملیات تحلیل داده با پایتون است. 
در این بخش از مطلب، دو روش مهم را برای تشخیص دادههای پرت بررسی میکنیم.
روش IQR
در روش «IQR» یا «دامنه میان چارکی» (InterQuartile Range)، دادههای پرت به عنوان مقادیری تعریف میشوند که کمتر از «Q1 - 1.5*IQR » یا بیشتر از «Q3 + 1.5*IQR» باشند.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Outliers:
Values
4 100متد Z-Score
این روش، دادههای «پرت» (Outliers) مقادیری هستند که Z-score آنها بزرگتر از 3 یا کوچکتر از -3 است.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
Outliers:
Empty DataFrame
Columns: [Values, Z_score]
Index: []مدیریت دادههای پرت
«مدیریت دادههای پرت» (Handling Outliers) به این معناست که دادههای پرت بسته به شرایط و نوع مسئله، یا حذف میشوند یا با روش «محدودسازی» (Capping) کنترل میگردند.
| روش | توضیح |
|---|---|
| حذف | حذف کامل رکوردهای پرت از مجموعه داده |
| محدودسازی | جایگزین کردن مقادیر پرت با حداقل یا حداکثر مجاز |
ابتدا در جدول بالا هر دو روش را به صورت مختصر و مفید توضیح دادهایم. سپس به منظور کمک به درک بهتر مطلب، با کمک مثال سادهای هر دو روش را پیادهسازی کردیم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.
After Removing Outliers:
Values
0 10
1 12
2 14
3 15چطور با کمک پایتون نمودار رسم کنیم؟
به لطف کتابخانههای قدرتمندی مثل Matplotlib و Seaborn و Plotly، پایتون، عملیات مصورسازی را سادهتر و سریعتر کرده است. در نتیجه کاربران با صرف زمان کمتر، خروجیهای باکیفیتی تولید میکنند. با استفاده از زبان برنامهنویسی پایتون، میتوانیم دادههای متنوع را به نمودارها و تصاویر بصری جذاب و قابل فهمی تبدیل کنیم. بهترین روش یادگیری این مهارت، استفاده از فیلمهای آموزشی است. زیرا با کمک این روش هم هزینهها کاهش پیدا میکند و هم یادگیری به شکلی مؤثرتر و سریعتر اتفاق میافتد. فرادرس به شکل تخصصی به تهیه و انتشار فیلمهای آموزشی در رشتههای مختلف میپردازد. به همین دلیل، مجموعه آموزشی نیز درباره مصورسازی دادهها با پایتون طراحی کرده است.
در پایین، چند مورد از فیلمهای این مجموعه آموزش را معرفی کردهایم.
- فیلم آموزش تجزیه و تحلیل و آماده سازی داده ها با «پایتون» (Python) + گواهینامه
- فیلم آموزش رایگان رسم نمودار لنگر و برش در تیر با پایتون + اصول و ترسیم در ژوپیتر
- فیلم آموزش تصویرسازی داده های آماری و رسم نمودار در پایتون با کتابخانه Seaborn
- فیلم آموزش مفاهیم آماری در داده کاوی و پیاده سازی آن در Python + گواهینامه
- فیلم آموزش مقدماتی ROOT و رابط pyROOT پایتون برای تحلیل و مصورسازی داده های آماری + گواهینامه
برای مشاهده سایر فیلمهای این مجموعه آموزشی، میتوانید بر روی تصویر زیر کلیک بکنید.

در بخشهای بعد، روش مصورسازی داده با استفاده از کتابخانههای Matplotlib و Seaborn را بررسی میکنیم.
مصورسازی داده با استفاده از Matplotlib
Matplotlib یکی از پرکاربردترین کتابخانههای پایتون برای رسم نمودار و مصورسازی دادهها است. این کتابخانه به تحلیلگران کمک میکند تا الگوها، روندها و روابط موجود بین دادهها را به صورت بصری مشاهده و درک کنند. به همین دلیل، Matplotlib نقش مهمی در تحلیل اکتشافی دادهها (EDA) دارد. برخی از کاربردهای اصلی Matplotlib عبارتاند از:
- رسم نمودارهای مختلف مانند نمودار خطی، نمودار میلهای، هیستوگرام و نمودار پراکندگی
- کمک به شناسایی روندها، توزیع دادهها و دادههای پرت
- سازگاری و یکپارچگی مناسب با دادههای NumPy و Pandas برای تحلیل و نمایش نتایج
به کمک این کتابخانه میتوان دادههای خام را به نمودارهای قابل فهم تبدیل کرد و بینش بهتری از اطلاعات به دست آورد. در جدول پایین به شکل خلاصه و کامل، مهمترین نکات مطرح شده در این بخش را دستهبندی کردهایم.
| نوع نمودار | تابع ساخت | کاربرد اصلی |
|---|---|---|
| نمودار خطی | plot() | نمایش روند تغییرات دادهها در طول زمان یا توالی مشخص |
| نمودار میلهای | bar() | مقایسه مقادیر بین دستههای مختلف |
| هیستوگرام | hist() | نمایش توزیع دادهها |
| نمودار پراکندگی | scatter() | بررسی رابطه بین دو متغیر |
| نمودار جعبهای | boxplot() | بررسی توزیع داده و شناسایی دادههای پرت |
| نقشه حرارتی همبستگی | corr() | نمایش میزان همبستگی بین متغیرها |
در ادامه این بخش از مطلب، تمام نمودارهای معرفی شده در جدول بالا را با کمک مثالهای سادهای رسم میکنیم.
تحلیل داده با پایتون توسط Pyplot
ماژول Pyplot در داخل کتابخانه Matplotlib تعبیه شده است. این ماژول رابط سادهای برای ساخت و سفارشیسازی نمودارها فراهم میکند. از این ابزار برای ایجاد شکل، افزودن برچسب و نمایش تصویری دادهها استفاده میشود. در کادر زیر، نمونه سادهای از محور دو بعدی را رسم کردهایم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.

تحلیل داده با پایتون توسط نمودار میلهای
«نمودار میلهای» (Bar Chart) یکی از پرکاربردترین انواع نمودارها برای مقایسه مقادیر بین دستههای مختلف است. در این نمودار، هر دسته با یک میله مستطیلی نمایش داده میشود و ارتفاع یا طول میله نشاندهنده مقدار آن دسته است.
- برای مقایسه دستههای گسسته استفاده میشود.
- میتواند به صورت عمودی یا افقی رسم شود.
- طول یا ارتفاع هر میله نشاندهنده مقدار مربوط به آن دسته است.
- با استفاده از متد bar() ایجاد میشود.
در کادر پایین نمونه سادهای از نمودار میلهای را برای بررسی دیتاست گلهای زنبق در کتابخانه sklearn رسم کردهایم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.

در فهرست زیر، مهمترین مراحل کدهای بالا را نوشتهایم.
- ابتدا کتابخانههای matplotlib.pyplot
- و pandas و مجموعه داده iris از sklearn وارد میشوند.
- سپس مجموعه داده iris بارگذاری میشود.
- بعد از آن، دادهها را در قالب DataFrame پانداس در متغیر df قرار میدهیم.
- در ادامه، ستون target را به DataFrame اضافه میکنیم تا کلاس هر نمونه مشخص باشد.
- سپس با value_counts تعداد نمونههای هر کلاس را محاسبه کرده و در متغیر counts ذخیره میکنیم.
- بعد از آن، با کمک plt.bar نمودار میلهای رسم میکنیم.
- در این نمودار، کلاسها روی محور افقی و تعداد نمونههای هر کلاس روی محور عمودی قرار میگیرند.
- در ادامه با استفاده از plt.title عنوان نمودار و با متغیرهای plt.xlabel و plt.ylabel برچسب محورهای افقی و عمودی تعیین میشوند.
- در پایان، با plt.show() نمودار روی صفحه نمایش داده میشود.
هیستوگرام
«هیستوگرام» (Histogram) برای نمایش توزیع دادهها استفاده میشود. این نمودار کار خود را با گروهبندی مقادیر در بازههایی به نام bins انجام میدهد. در هیستوگرام، محور x بازهها را نشان میدهد و محور y تعداد (فراوانی) مقادیر در هر بازه را نمایش میدهد.
- برای درک توزیع دادهها استفاده میشود.
- دادهها را به بازههای غیرهمپوشان bins تقسیم میکند.
- با استفاده از متد hist() ایجاد میشود.
در کادر پایین، نمونه سادهای از نمودار هیستوگرام را برنامه نویسی کردهایم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.

نمودار پراکندگی (Scatter Plot)
نمودارهای پراکندگی برای مشاهده رابطه بین متغیرها استفاده میشوند. این نمودار با استفاده از نقطه، ارتباط بین متغیرها را نشان میدهد. از متد scatter() در کتابخانه Matplotlib برای رسم نمودار پراکندگی استفاده میکنیم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.

مراحل اجرای کدهای بالا را در فهرست پایین نوشتهایم.
- ابتدا ماژول matplotlib.pyplot و کتابخانه pandas و مجموعه داده iris از sklearn را به محیط برنامه نویسی ایمپورت میکنیم.
- برای وارد کردن مجموعه داده iris باید از تابع load_iris() استفاده کنیم.
- بعد از آن، دادهها در قالب یک DataFrame پانداس در متغیر df قرار میگیرند.
- در ادامه، ستون species به DataFrame اضافه میشود تا نوع هر نمونه مشخص باشد.
- سپس با plt.scatter نمودار پراکندگی را رسم میکنیم.
- در این نمودار، «طول کاسبرگ» (Sepal Length) روی محور افقی و عرض کاسبرگ (Sepal Width) روی محور عمودی قرار میگیرد.
- هر نقطه در نمودار، نمونهای از مجموعه داده iris را نمایش میدهد.
- در ادامه، با متد plt.title عنوان نمودار را تعیین میکنیم.
- با کمک توابع plt.xlabel و plt.ylabel نیز برچسب محورهای افقی و عمودی را مشخص میکنیم.
- در پایان، با کمک دستور plt.show() نمودار روی صفحه نمایش داده میشود.
«نمودار جعبهای» (Box Plot)
«نمودار جعبه و خط» (Box and Whisker Plot) برای نمایش توزیع دادهها و شناسایی دادههای پرت استفاده میشود. این نمودار از چارک برای خلاصهسازی دادهها کمک میگیرد.
- مقدار حداقل در سمت چپ نمودار و در انتهای «خط» (Whisker) چپ نشان داده میشود.
- چارک اول (Q1) در سمت چپ جعبه قرار دارد (لبه چپ جعبه یا Whisker چپ).
- میانه (Median) به صورت خط در وسط جعبه نمایش داده میشود.
- چارک سوم (Q3) در سمت راست جعبه قرار دارد (لبه راست جعبه یا Whisker راست).
- مقدار حداکثر در سمت راست نمودار قرار دارد.
در کادر پایین مثال سادهای از نمودار جعبهای را پیادهسازی کردهایم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.

نقشه حرارتی همبستگی
«نقشه حرارتی همبستگی» (Correlation Heatmap) ابزاری برای نمایش رابطه بین متغیرها است. این نمودار از رنگها برای نشان دادن میزان همبستگی استفاده میکند. نقشه حرارتی بر پایه ماتریس همبستگی ساخته میشود. در این ماتریس، هر خانه میزان ارتباط بین دو متغیر را نشان میدهد.
- از رنگها برای نمایش مقدار همبستگی از -1 تا +1 استفاده میکند.
- به شناسایی الگوها، روابط و وابستگیها کمک میکند.
- برای محاسبه ماتریس همبستگی از متد corr() استفاده میکنیم.
- شدت رنگ نشاندهنده قدرت رابطه است.
- فقط با دادههای عددی کار میکند.
در کادر پایین، نمونه سادهای از نقشه حرارتی همسبتگی را پیادهسازی کردهایم.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.

در فهرست زیر روند اجرای کدهای بالا را مرحلهبهمرحله نوشتهایم.
- ابتدا ماژول matplotlib.pyplot و کتابخانه pandas و مجموعه داده iris از sklearn را به محیط برنامه نویسی ایمپورت میکنیم.
- برای وارد کردن مجموعه داده iris باید از تابع load_iris() استفاده کنیم.
- بعد از آن، دادهها در قالب یک DataFrame پانداس در متغیر df قرار میگیرند.
- در ادامه، با کمک تابع df.corr() ماتریس همبستگی را بین ستونهای عددی محاسبه کرده و در متغیر corr ذخیره میکنیم.
- سپس با دستور plt.imshow ماتریس همبستگی را به صورت نقشه حرارتی نمایش میدهیم.
- پارامتر cmap='autumn' رنگبندی نمودار را مشخص میکند و interpolation='nearest' نحوه نمایش خانهها را تعیین میکند.
- بعد از آن، با متد plt.title عنوان نمودار را تنظیم میکنیم.
- با کمک متد plt.colorbar() نیز نوار رنگی نمایش داده میشود. با استفاده از این نوار مقدار همبستگی هر رنگ مشخص میشود.
- در ادامه، با دستورهای plt.xticks و plt.yticks نام ستونها را روی محورهای افقی و عمودی قرار میدهیم.
- در پایان، با دستور plt.show() نقشه حرارتی را روی صفحه نمایش میدهیم.
مصورسازی داده با استفاده از Seaborn
Seaborn کتابخانهای سطح بالا است که برای مصورسازی دادهها در پایتون به کار برده میشود. این کتابخانه بر پایه Matplotlib ساخته شده است.Seaborn نمودارهای آماری را با ظاهری زیباتر و اطلاعات بیشتر نمایش میدهد.
- استایلهای آماده و قالبهای گرافیکی متنوعی دارد.
- ساخت مصورسازیهای پیچیده را ساده میکند.
- به طور مستقیم با DataFrame-های Pandas کار میکند.
در کادر پایین، نمونهسادهای از نمودارهای ساخته شده توسط کتابخانه seaborn را نمایش دادهایم. در این نمودار، «طول کاسبرگ» (Sepal Length) روی محور افقی و «عرض کاسبرگ» (Sepal Width) روی محور عمودی قرار گرفته است.
بعد از اجرای کدهای بالا خروجی به صورت زیر تولید شده و در کنسول پایتون نمایش داده میشود.

جمعبندی
در این مطلب از مجله فرادرس، «تحلیل داده با پایتون» را از مفاهیم پایه تا مراحل عملی تحلیل داده پوشش میدهد. ابتدا توضیح میدهد که تحلیل داده فرایند جمعآوری، سازماندهی، تبدیل و بررسی دادهها برای استخراج دانش و کمک به تصمیمگیری آگاهانه است. سپس اهمیت استفاده از یک جریان کار مشخص در پروژههای تحلیل داده را بیان میکند تا فرایندها منظمتر، خواناتر و قابل توسعه باشند.
در ادامه، مهمترین ابزارهای پایتون برای تحلیل داده معرفی میشوند. کتابخانه Pandas برای خواندن، مدیریت و پردازش دادههای ساختاریافته و کتابخانه NumPy برای انجام محاسبات عددی سریع و کار با آرایهها مورد بررسی قرار میگیرند. مطلب همچنین مراحل تحلیل کاوشگرانه داده (EDA) مانند بررسی ساختار دادهها، فیلتر کردن، مرتبسازی، گروهبندی، مدیریت دادههای گمشده، حذف مقادیر تکراری و شناسایی دادههای پرت را آموزش میدهد. در پایان نیز روشهای مصورسازی داده با Matplotlib و Seaborn معرفی میشوند تا الگوها، روندها و روابط موجود در دادهها به شکل بصری قابل مشاهده و تحلیل باشند.












