ویرگول
ورودثبت نام
ایمان محدثی
ایمان محدثی
ایمان محدثی
ایمان محدثی
خواندن ۶ دقیقه·۶ ساعت پیش

مطلب ششم از علم داده : استفاده از pandas در علم داده

یکی از نقاط قوت پایتون این است که شامل مجموعه‌ای متنوع از کتابخانه‌های رایگان و متن‌باز است.
کتابخانه‌ها مجموعه‌ای از متدها و توابع از پیش پیاده‌سازی‌شده هستند که برنامه‌نویس می‌تواند به آن‌ها مراجعه کند و به این ترتیب، نیازی به نوشتن دوباره‌ی توابع رایج از صفر نداشته باشد.

Pandas  یک کتابخانه‌ی پایتون است که به‌طور تخصصی برای کار و تحلیل داده طراحی شده و در بین دانشمندان داده بسیار پرکاربرد است. این کتابخانه متدهای متنوعی را ارائه می‌دهد که به تحلیل‌گران داده اجازه می‌دهد به‌سرعت از آن‌ها برای تحلیل داده استفاده کنند. در طول این دوره، نحوه‌ی تحلیل داده با استفاده از Pandas را یاد خواهید گرفت.

نصب کتابخانه  Pandas

 قبل از اینکه بتوانیم با Pandas کار کنیم ، باید آن را نصب کنیم .برای نصب Pandas ابتدا باید پایتون روی سیستم ما نصب شده باشد. برای این کار، ترمینال VS Code رو باز می‌کنیم و این دستور رو می‌زنیم:

 

اگر نسخه پایتون نمایش داده شد، یعنی پایتون آماده‌ی استفاده‌ست.

برای نصب Pandas از ابزار مدیریت بسته‌ی پایتون یعنی pip  استفاده می‌کنیم.

 

Import کردن Pandas

نخست یک فایل جدید جوپیتر پایتون ( Jupyter Notebook )  بنام main.ipynb ایجاد کنید:

 

. برای استفاده از Pandas ، کافی است که ، آن را import کنیم :

فایل main.ipynb را باز کنید.

import pandas as pd

 توجه داشته باشید که طبق یک قرارداد رایج، نام pandas به‌صورت pd  مخفف می‌شود تا هنگام استفاده از متدهای آن، به‌جای نوشتن کامل نام Pandas ، فقط از pd استفاده شود؛ این کار باعث راحتی و سرعت بیشتر در برنامه‌نویسی می‌شود.

 بارگذاری داده با Pandas در پایتون

اولین قدم در تحلیل داده ، بارگذاری دیتاست مورد نظر در محیط کاری است. دیتاست movieprofit.csv رو دانلود کنید و در پوشه پروژه قرار دهید.

خواندن دیتاست

متد read_csv  در Pandas برای خواندن فایل‌های CSV استفاده می‌شود و داده‌ها را به شکل یک DataFrame  ذخیره می‌کند.
DataFrame  نوع داده‌ای در Pandas است که برای ذخیره‌ی داده‌های جدولی چندستونه استفاده می‌شود.

data = pd.read_csv("movieprofit.csv") data

بعداز اجرا خروجی همانند تصویر زیر خواهد بود :

 Pandas  دو نوع داده‌ی اصلی برای داده‌های جدولی تعریف می‌کند:

  • DataFrame : برای داده‌های چندستونه

  • Series :  برای داده‌های تک ستونه

بسیاری از متدهای Pandas هم روی DataFrame و هم روی Series کار می‌کنند، اما بعضی متدها فقط مخصوص یکی از آن‌ها هستند؛ بنابراین همیشه بهتر است بررسی کنید متدی که استفاده می‌کنید دقیقاً چه رفتاری دارد.

می‌توانید با استفاده از متد DataFrame.describe خیلی سریع آمارهای پایه‌ای داده‌ها را محاسبه کنید.
کد زیر را اضافه  و اجرا کنید. این کد متد describe  را روی متغیر data  فراخوانی می‌کند.

data = pd.read_csv("movieprofit.csv") data.describe()

 متد describe یک جدول برمی‌گرداند که ستون‌های آن زیرمجموعه‌ای از ستون‌های کل مجموعه‌داده هستند و سطرهای آن شامل آمار های مختلف می باشند.


این آمارها شامل تعداد مقادیر موجود در هر ستون  (count)، میانگین  (mean)، انحراف معیار (std)، کمینه و بیشینه (max, min)  و همچنین چارک‌های مختلف (25% ، 50% و 75%) که در مبحث «معیارهای پراکندگی» با آن‌ها آشنا خواهید شد.

با استفاده از این نمایش، می‌توانید به‌راحتی چنین آمارهایی را برای ستون‌های مختلف مجموعه‌داده محاسبه کنید.

انتخاب داده با استفاده از Pandas در پایتون

DataFrame  در کتابخانه Pandas این امکان را به برنامه‌نویس می‌دهد که برای انتخاب یک ستون، مستقیماً از نام ستون استفاده کند.
برای مثال، کد زیر تمام مقادیر ستون US_Gross_Million  را چاپ می‌کند. خروجی این انتخاب به‌صورت یک Series خواهد بود (یادآوری: داده‌های یک ستون تکی در Pandas در قالب Series ذخیره می‌شوند.)

import pandas as pd data = pd.read_csv("movieprofit.csv") data["US_Gross_Million"]

 

  خروجی کد بالا مانند تصویر زیر است :

 

علاوه بر این، متد DataFrame.iloc[]  امکان انتخاب پیشرفته‌تری را فراهم می‌کند. با استفاده از iloc می‌توان هم سطر و هم ستون را بر اساس اندیس عددی آن‌ها انتخاب کرد.

data.iloc[:,2]

 خروجی همانند تصویر زیر خواهد بود:

 
در ادامه، چند مثال ارائه می‌شود تا نحوه‌ی استفاده از این روش‌ها را بهتر درک کنیم.

مثال یک : انتخاب همه مقدار ها در ستون دوم :

data.iloc[:,2]

 مثال دوم : انتخاب هم مقدارها در ردیف سوم :

data.iloc[2, :]

 خروجی:

مثال سوم : برای تعیین یم مقدار دقسق در یک ستون ، می توانیم از شماره اندیس استفاده کنیم:

print(data["US_Gross_Million"][0])

شما همچنین می‌توانید از []DataFrame.iloc  برای انتخاب یک بخش مشخص از سلول‌ها در جدول استفاده کنید.
کد نمونه‌ی زیر روش‌های مختلف استفاده از []iloc  را نشان می‌دهد.vوش‌های متعددی برای کار با []iloc  وجود دارد، اما در این جلسه فقط چند روش رایج معرفی می‌شود.

مثال چهار : انتخاب همه مقادیر در ستون دوم ( اندیس 1 )

data.iloc[:, 1]

خروجی :

مثال زیر را امتحان کنید :

data.iloc[[1, 3], [2, 3]]

جست‌وجوی داده با استفاده از Python Pandas

برای جست‌وجو یا فیلتر کردن داده‌هایی که شرایط خاصی را برآورده می‌کنند، می‌توانید از [] DataFrame.loc در کتابخانه‌ی Pandas  استفاده کنید.
زمانی که شرط فیلتر را داخل براکت‌ها []  مشخص می‌کنید، خروجی فقط شامل ردیف‌هایی از DataFrame  خواهد بود که آن شرط را دارند.

برای مثال، در کد زیر ردیف‌هایی فیلتر می‌شوند که مقدار ستون Genre  آن‌ها برابر با Comedy  است.
توجه کنید که خروجی فقط شامل ۳۰۷ ردیف از مجموع ۳۴۰۰ ردیف کل داده‌هاست. اگر خودتان خروجی را بررسی کنید، خواهید دید که مقدار ستون Genre  در همه‌ی این ردیف‌ها برابر با "Comedy" است.

import pandas as pd data = pd.read_csv("movieprofit.csv") data.loc[data["Genre"] == "Comedy"]

خروجی :

مصورسازی داده‌ها با استفاده از Python و Matplotlib

روش‌های مختلفی برای رسم نمودار داده‌ها در پایتون وجود دارد. رایج‌ترین و ساده‌ترین روش این است که از کتابخانه‌ای به نام Matplotlib  استفاده کنیم که به‌طور تخصصی برای مصورسازی داده‌ها طراحی شده است.

Matplotlib  یک کتابخانه‌ی بزرگ است، اما برای رسم نمودارها فقط کافی است زیرماژولی به نام pyplot  را وارد کنیم.

برای نصب matplotlib دستور زیر را وارد کنید و همانند pandas عمل کنید. توجه داشته باشید که طبق قرارداد، معمولاً از نام کوتاه plt  برای matplotlib.pyplot  استفاده می‌شود؛ درست مشابه کاری که برای Pandas از pd  استفاده می‌کنیم.

import matplotlib.pyplot as plt

 

Matplotlib  برای هر نوع نمودار یک متد اختصاصی ارائه می‌دهد و در طول این دوره با متدهای مربوط به رایج‌ترین انواع نمودارها آشنا خواهید شد. با این حال، در این جلسه به‌طور خلاصه نحوه‌ی رسم یک نمودار با استفاده از Matplotlib را بررسی می‌کنیم.

فرض کنید می‌خواهید یک نمودار پراکندگی (Scatter Plot) بین ستون‌های US_Gross_Million  و Worldwide_Gross_Million  از مجموعه‌داده‌ی سود فیلم‌ها (movieprofit.csv) رسم کنید. در فصل «تحلیل همبستگی و رگرسیون خطی» به‌صورت مفصل‌تر به نمودارهای پراکندگی می‌پردازیم.

در کد نمونه‌ی زیر، با استفاده از متد ()scatter  چنین نموداری رسم می‌شود. این متد دو ستون مورد نظر شما، یعنی
data["US_Gross_Million"]  و data["Worldwide_Gross_Million"]  را به‌عنوان ورودی دریافت می‌کند و آن‌ها را به‌ترتیب به محورهای x و y اختصاص می‌دهد.

import pandas as pd import matplotlib.pyplot as plt   data = pd.read_csv("movieprofit.csv") plt.scatter(data["US_Gross_Million"], data["Worldwide_Gross_Million"])

خروجی :

 توجه کنید که این نمودار فقط مجموعه‌ای از نقاط را روی یک صفحه‌ی سفید نشان می‌دهد. خودِ نمودار به‌تنهایی مشخص نمی‌کند هر محور چه چیزی را نمایش می‌دهد یا این نمودار دقیقاً درباره‌ی چیست. بدون این توضیحات، درک مفهوم نمودار دشوار خواهد بود.

می‌توانید این اطلاعات را با استفاده از کد زیر تنظیم کنید. نمودار نهایی نشان می‌دهد که بین فروش داخلی  (Domestic Gross)  و فروش جهانی (Worldwide Gross) یک همبستگی مثبت وجود دارد.

import pandas as pd import matplotlib.pyplot as plt   data = pd.read_csv("movieprofit.csv") plt.scatter(data["US_Gross_Million"], data["Worldwide_Gross_Million"]) plt.title("Domestic vs. Worldwide Gross") plt.xlabel("Domestic") plt.ylabel("Worldwide")

خروجی :

همچنین می‌توانید بازه‌ی اعداد روی محورهای افقی و عمودی را با استفاده از توابع ()plt.xlim  و () plt.ylim تغییر دهید.
دو خط کد زیر را اضافه کنید که در مثال قبلی برای رسم نمودار پراکندگی (scatterplot) استفاده شده بود.

plt.xlim(100, 300)   plt.ylim(100, 1000)  

خروجی :

 

                       

pandasعلم دادهتحلیل دادهداده کاوی
۱
۰
ایمان محدثی
ایمان محدثی
شاید از این پست‌ها خوشتان بیاید