تحلیل داده و بصری سازی در پایتون _(پارت 1)

پارت 1 pandasروش های مختلفی برای یادگرفتن آنالیز داده وجود داره ، اما یکی از بهترین اونها یادگرفتن به وسیله دیدن مثال های مختلف .اینجا قراره یک dataset رو باهم بررسی کنیم و مثال های مختلفی از task های رایج آنالیز داده رو روی اون ببینیم. و امیدواریم که در انتهای این دوره اونقدر با pandas آشنا بشید که بتونید به تنهایی با اون کار کنید. برای شروع نیاز داریم که یک نسخه از python 3 روی سیستم نصب داشته باشیم .همینطور باید کتابخانه pandas رو هم نصب کنیم که با دستور :pip install panda توی terminalاینکار انجام میشه ،بعد از انجام این نصب ها نیاز داریم که یک dataset پیدا کنیم و شروع کنیم به کار با اون .یکی از بهترین سایت ها برای پیدا کردن dataset ، سایت kaggle هست ،البته لینک dataset استفاده شده توی این دوره رو براتون میذاریم.بعد از دانلود و unzip کردن فایل dataset به یک فایل با پسوند .csv می رسید.باید بدونید که csv فایل ها یکی از رایج ترین انواع فایل مورد استفاده در آنالیز داده هستند. Csv کوتاه شده جمله comma separated values در واقعا میشه گفتن این فایل ها شامل دیتا هایی هستند که به وسیله کاما از هم جدا شدن و وقتی که به وسیله pandas اون ها رو میخونیم ، می بینید که بجای کاما سطر ها وستون ها دیتا ها رو از هم جدا میکنحالا که با دیتا آشنا شدیم نوبت اون رسیده که اون رو به وسیله یک dataframe از کتابخانه pandas نمایش بدیم که خود dataframe یک ساختار تعریف شده در pandas است که برای نگه داری ونمایش انواعه متخلف دیتا بکار میرود، در واقع dataframe مثل یک جدول عمل میکنه که دارای سطر و ستون هست و میشه محاسبات و کارهای مختلف دیگه ای روی اون انجام داد.برای کار با دیتا ها از هر ادیتوری که دارید می تونید استفاده کنید، اما Jupyter notebook ادیتوری هست که قراره من ازش استفاده کنم برای نصب اون هم کافیه توی terminal دستور زیر رو اجرا کنید : pip install jupyterlab بعد از نصب هم برای اجرای اون ، همونجا دستور jupyter lab رو اجرا کنید که براتون jupyter رو توی مرورگر باز کنهتوی مرورگر از مسیر زیر یه فایل جدید باز میکنیم file > new > notebookالان وقت اون رسیده که برای شروع csv فایل رو بخونیم و اون رو نمایش بدیم برای اینکار از متد read_csv استفاده میکنیم :import pandas as pd df = pd.read_csv("datasets/avocado.csv") حالا برای نمایش این dataframe کافیه فقط اسم اون رو بنویسیم :dfهمونطور که می بینید این خروجی بخاطر حجم زیاد دیتا ممکنه در نگاه اول گیج کننده باشه ، به همین خاطر ما معمولا یک قسمت کوچیک از dataframe رو نمایش میدیم که مطمئن بشیم همه چیز درست کار میکنه .معمولا برای این کار متد head استفاده میشه :df.head()حتی میشه به متد head پارامتر پاس داد که این پارامتر نشون دهنده ی تعداد سطر هایی که نمایش داده میشن :df.head(7)گاهی وقت ها ممکنه حالت هایی پیش بیاد که نیاز داشته باشید سطر هایی از انتهای dataframe رو ببینید ، برای اینکار هم متدی به اسم tail وجود داره :df.tail(6)حتی میتونیم به ستون های خاصی ارجاع بدیم و فقط مقادیر اون ستون رو در خروجی ببینیم:df['AveragePrice'].head()یکی از اهداف معمول در حوزه آنالیز داده ، بصری سازی داده هاست. چون همه نمودارها رو دوست دارن بعلاوه اونها کمک میکنن که به خوبی داده ها رو تعمیم بدیم. اگر به دیتاستی که باهاش کار میکنیم یه نگاهی بندازید، می بینید که در واقع این دیتاها براساس زمان (ستون date) و نژاد(regions) اوکادو ها دسته بندی شدن.پس ما میتونیم نمودارهای خطی برای هر نژاد براساس زمان رو داشته باشیم. برای انیکار نیاز داریم یک کتابخانه دیگه به اسم matplotlib رو هم اضافه کنیم ، در اولین قدم این دستور رو توی ترمینال اجرا میکنیم:pip install matplotlibاما قبل از اون باید اطلاعات هر نژاد رو به صورت یک دیتافریم جداگانه ذخیره کنیم :albany_df = df[df['region']=="Albany"]این دستور ممکنه کمی گیج کننده باشه اما به صورت خیلی ساده اون رو میشه به این صورت ترجمه کرد ، albany_df یک دیتافریم است که تمام دیتاهایی اون از دیتافریم اصلی میاد که مقادیر ستون df['region'] برابر Albany است. اگر یه نگاهی به این دیتافریم جدید بندازیم به این شکل میشه:albany_df.head()یک ویژگی دیگه از دیتافریم ها که ممکنه به دفعات زیاد ببینید اینکه دیتافریم ها به وسیله یک چیزی شماره گذاری یا index شدن . برای اینکه بدونیم index دیتافریم ما چیه به این صورت عمل میکنیم:albany_df.indexتوی این حالت می بینید که اعداد برای ما اینکار رو میکنن که خیلی استفاده مفیدی ازش نمیشه کرد ، پس بجای اون میتونیم از یکی از ستون های مهم که دارای مقادیر متمایز هست استفاده کنیم. که توی این dataframe ستون date این قابلیت رو داره :albany_df = albany_df.set_index("Date")با انجام دادن این کار الان نوبت اون رسیده که نمودار رو برای این دیتا فریم جدید رسم کنیم:albany_df['AveragePrice'].plot()وقتی تابع plot رو روی یک دیتافریم فراخوانی میکنیم ، توی نمودار رسم شده مقادیر محور x به صورت پیش فرض برابر مقادیر ستون index و مقادیر محور y رو به عنوان ورودی به تابع میدیم.پارت دوم به زودی میاد و لینکش رو هم همینجا میذارم