معرفی کتابخانه Pandas در پایتون


پانداس چیست ؟

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

چرا کتابخانه Pandas ؟

  • این کتابخانه می‌تواند داده‌ها را با بهره‌گیری از ساختارهای Series و DataFrame که ارائه می‌کند، به قالبی که برای تحلیل داده‌ها مناسب هستند، مبدل سازد.
  • بسته پانداس حاوی چندین متد برای پالایش مناسب داده‌ها است.

پانداس دارای ابزارهای گوناگونی برای انجام عملیات ورودی/خروجی است و می‌تواند داده ها را از فرمت های گوناگون شامل MS Excel ،TVS،CSV و دیگر موارد بخواند.

نصب پانداس

1) نصب به کمک pip، برای نصب پانداس، می‌توان قطعه کد زیر را مورد استفاده قرار داد:

pip install pandas

2) افرادی که آناکوندا (Anaconda) را روی سیستم خود نصب دارند، می‌توانند از دستور زیر برای نصب کتابخانه Pandas استفاده کنند:

conda install pandas

3) با اینکه پیشنهاد می شود که آخرین نسخه کتابخانه را نصب کنید، ولی اگر کاربری نسخه قدیمی ای را در نظر دارد باید شماره ورژن را دقیقا هنگام نصب وارد کند، مثلا می خواهیم ورژن شماره 0.23.4 را نصب کنیم:

conda install pandas = 0.23.4

برای اطلاعات بیشترروی این لینک کلیک کنید.



خب حالا که آنچه را که برای شروع نیاز بود تقریبا یادگرفتیم و همچنین پانداس دوست داشتنیمون را هم نصب کردیم، میریم سراغ توابع مهم و کاربردیش!

توابع مهم و کاربردی Pandas:

import :

نخستین گام پس از نصب پانداس، وارد کردن بسته آن است

import pandas

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

import pandas as pd

Series:

برای ساخت Series، متد ()pd.Series فراخوانی می‌شود و یک آرایه، چنانکه در زیر نمایش داده شده، پاس داده می‌شود.

series1 = pd.Series([1,2,3,4])
print(series1)
خروجی
خروجی

DataFrame:

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

df = pd.DataFrame({
&quotColumn1&quot: [1, 4, 8, 7, 9],
&quotColumn2&quot: ['a', 'column', 'with', 'a', 'string'],
&quotColumn3&quot: [1.23, 23.5, 45.6, 32.1234, 89.453],
&quotColumn4&quot: [True, False, True, False, True]
})
print(df)
خروجی
خروجی

لازمه بگم که روش های دیگه ای برای ساخت دیتافریم در پانداس وجود داره که ما اینجا به یه روش بسنده میکنیم اما شما میتونید خیلی راحت با یه سرچ ساده بقیه روش ها رو هم یاد بگیرید.

Read_CSV:

یک فایل CSV (Comma Separated Value)، یک فایل متنی با مقادیری است که به وسیله کاما (,) از یکدیگر جدا شده‌اند.

برای وارد کردن فایل های CSV در پانداس مطابق قطعه کد زیر عمل می کنیم (فرض کنید نام فایل name.csv است):

data = pd.read_csv('name.csv')

در اینجا توضیح دو تا از پارامتر های مهم این متد را داریم:

· skiprows :

برای نادیده گرفتن سطر یا سطرهای خاصی از دیتاست.

· low_memory:

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


to_numpy:

برای تبدیل دیتافریم به آرایه که به کمک کتابخانه (Numpy) می توان مدیریت کرد طبق کد زیر عمل می کنیم:

df.to_numpy()

کتابخانه Numpy پیش از این آموزش داده شده است اگر هنوز اون آموزش رو نخوندید پیشنهاد می کنم حتما اونا مطالعه کنید.

describe:

برای مشاهده آمار های عددی دیتافریم و داشتن درک از آن، به صورت روبرو عمل می کنیم:

df.describe()
خروجی
خروجی

info:

برای مشاهده اطلاعات مربوط به دیتافریم و درک کلی از ویژگی ها، تایپ مقادیر، و... از این متد می توان استفاده کرد:

df.info()
خروجی
خروجی

value_counts:

برای بدست آوردن تعداد تکرار مقادیر، در مثال زیر تعداد تکرار مقدار های ستون Column4 را حساب می کنیم:

df[&quotColumn4&quot].value_counts()
خروجی
خروجی

T:

به کمک کد زیر می توان ترانهاده (جایجایی سطر و ستون) دیتافریم را بدست آوریم:

df.T
خروجی
خروجی

sort_index:

برای مرتب سازی ستون های دیتافریم از دستور زیر استفاده می کنیم:

df.sort_index(axis=1, ascending=False)

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

df.sort_index(axis=1, ascending=True)

sort_values:

برای مرتب سازی دیتافریم بر اساس یک ستون خاص (مانند Column2) طبق کد زیر پیش می رویم:

df.sort_values(by=&quotColumn2&quot)

loc:

این متد ابزار مناسبی است که به کاربر کمک می‌کند تا تنها سطرهای معینی را در مجموعه داده بخواند. این مورد، در مثال زیر نمایش داده شده است.

df.loc[[0, 4], [&quotColumn3&quot]]
خروجی
خروجی

iloc:

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

df.iloc[2:4, 0:3]

در واقع از قابلیت slices مانند آنچه که در نامپای وآرایه ها بود استفاده می کنیم.

خروجی
خروجی

Boolean Indexing:

یکی از امکانات جذاب پانداس، که به کمک آن می توانیم با ایجاد یک شرط داده ها را فیلتر کنیم، به کد زیر توجه کنید:

df[df[&quotColumn4&quot] > 4]

در واقع با اینکار دیتافریمی نمایش داده می شود که مقادیر Column1 آن بزرگتر از 4 می باشند.

خروجی
خروجی

iat:

مقدار دهی دستی به مختصات خاصی از دیتافریم. از دستور زیر استفاده می کنیم:

df.iat[4, 0] = 100

dropna:

برای حذف سطر یا ستون هایی که مقادیر گم شده (missing values) دارند و کامل نیستند:

df.dropna(inplace=True)

fillna:

برای پُر کردن سطر یا ستون هایی که مقادیر گم شده (missing values) دارند و کامل نیستند(مثلا با عدد 5 پُر می کنیم):

df.fillna(value=5)

isna:

برای تشخیص مقادیر گم شده استفاده می شود و خروجی به ما جدولی از بولین ها برای مقدار گم شده بودن یا نبودن می دهد:

df.isna()
خروجی
خروجی

merge:

کتابخانه پانداس این امکان را برای کاربر فراهم می‌کند که اشیای دیتافریم را با تابع merge() به یکدیگر متصل کنند. در ادامه، دو دیتافریم ساخته و روش ادغام کردن آن‌ها با یکدیگر نمایش داده شده است، دیتا فریم اول:

d1 = {
'subject_id': ['1', '2', '3', '4', '5'],
'student_name': ['John', 'Emily', 'Kate', 'Joseph', 'Dennis']
}
df1 = pd.DataFrame(d1, columns=['subject_id', 'student_name'])

دیتا فریم دوم:

d2 = {
'subject_id': ['4', '5', '6', '7', '8'],
'student_name': ['Brian', 'William', 'Lilian', 'Grace', 'Caleb']
}
df2 = pd.DataFrame(d2, columns=['subject_id', 'student_name'])

ادغام این دو دیتافریم بر اساس subject_id:

pd.merge(df1, df2, on='subject_id')

خروجی
خروجی

concat:

به کمک این متد می توان دو دیتافریم را به یکدیگر الحاق کرد. به قطعه کد زیر توجه کنید:

pd.concat([df1, df2])
خروجی
خروجی

group by:

به کمک پانداس می توان کل دیتافریم را بر مبنای ستون خاصی دسته بندی کنیم. قطعه کد زیر دیتافریم ما را بر اساس ستون 2Column و جمع مقادیر مربوطه نمایش خواهد داد:

df.groupby(&quotColumn2&quot).sum()
خروجی
خروجی

categoricals:

یکی از متد های بسیار مهم می باشد که به ما کمک می کند مقادیری با تایپ category داشته باشیم:

df[&quotgrade&quot]=[&quota&quot, &quotb&quot, &quotb&quot, &quote&quot, &quota&quot]
df[&quotgrade&quot] = df[&quotgrade&quot].astype(&quotcategory&quot)

زمانیکه دیتافریم آپدیت شده را به کمک متد info() خروجی می گیریم:

خروجی
خروجی

یه نکته ای باید بگم اونم اینه که اگه تایپ مقادیر grade رو به category تبدیل نمی کردیم مانند ستون Column2 تایپش object می شد این متد رو حتما بلد باشید که بعدا تو الگوریتم های ماشین لرنینگ بش نیاز خواهیم داشت.

time series:

برای تولید زمان های مختلف بکار می رود:

dti = pd.date_range(&quot2021-10-31&quot, periods=3, freq=&quotH&quot)

می توان در کد بالا تعداد دوره زمانی و نوع آن را تغییر داد.

خروجی
خروجی

correlation:

با استفاده از این متد می توان ضریب همبستگی داده ها را بدست آوریم. ضریب همبستگی، شدت رابطه و یا نوع رابطه (مستقیم یا معکوس) را نشان می دهد و همواره بین 1 و 1- می باشد.

df.corr()
خروجی
خروجی

to_csv:

ذخیره دیتافریم به عنوان یک فایل csv:

df.to_csv(&quotmyFirstDataFrame.csv&quot)

و در پایان باید بگم که سعی کردیم تو این مقاله بهترین و کاربردی ترین توابع کتابخانه ی پانداس را براتون بگیم که بتونید این کتابخونه رو خیلی سریع و با کیفیت بالا یادش بگیرید ولی چیزی که میتونه شما رو بیشتر موفق کنه، اینه که تمرین کنید!

موفق باشید!

محمد جعفر پور
احسان قیچی ساز