<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
    <channel>
        <title>نوشته های Aiverse</title>
        <link>https://virgool.io/feed/@Aiverse</link>
        <description></description>
        <language>fa</language>
        <pubDate>2026-06-07 14:30:06</pubDate>
        <image>
            <url>https://static.virgool.io/images/default-avatar.jpg</url>
            <title>Aiverse</title>
            <link>https://virgool.io/@Aiverse</link>
        </image>

                    <item>
                <title>تحلیل داده و بصری سازی در پایتون _(پارت 2)</title>
                <link>https://virgool.io/@Aiverse/%D8%AA%D8%AD%D9%84%DB%8C%D9%84-%D8%AF%D8%A7%D8%AF%D9%87-%D9%88-%D8%A8%D8%B5%D8%B1%DB%8C-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D9%BE%D8%A7%D8%B1%D8%AA-2-dqnvm5bpskav</link>
                <description>توی جلسه قبل آخرین کاری که انجام دادیم رسم نمودار dataset براساس ستون های date  و averagePrice بود. اما باید توجه کنید که دیتاهای ذخیره شده توی dateset به فرمت string  هستن اما ما گاهی نیاز داریم که با فرمت های مختلف دیتا کار کنیم به عنوان مثال توی همین dataset  ستون date  در حال حاضر توسط کامپیوتر به فرمت String  دیده میشه اما کتابخانه pandas  این امکان رو برای ما ایجاد میکنه که اون رو به فرمت دلخواه ما یعنی dateitime objects در بیاریم که از این به بعد مقادیر این ستون توسط کامپیوتر به این فرمت شناخته بشه که به ما اجازه میده از ویژگی ها و توابعی روی این فرمت کار میکنن استفاده کنیم.حالا کافیه دوباره دیتاست Albany_df  رو تشکیل بدیم و نمودارش رو رسم کنیم:albany_df = df[df[&#039;region&#039;]==&amp;quotAlbany&amp;quot]albany_df.set_index(&amp;quotDate&amp;quot, inplace=True)albany_df[&amp;quotAveragePrice&amp;quot].plot()حالا که type  ستون date  رو درست کردیم نوبت اینکه یکم نمودار رو نرمال تر کنیم برای اینکار دوتا کار میشه انجام داد .اولین کار اینکه ستون index دیتاست رو sort  کنیم. این کار رو با دستور ()sort_index. به این صورت انجام میدیم:albany_df.sort_index(inplace=True)همونطور که می بینید بعد از اجرا کردن این دستور یک اخطار هم نمایش میده که خیلی نگرانش نباشید، دستور به درستی انجام شده و کار بعدی که انجام میدیم اینکه از مقادیر ستون AveragePrice توی هرکدوم از این تاریخ ها میانگین بگیریم :albany_df[&amp;quotAveragePrice&amp;quot].rolling(25).mean().plot()و همونطور که می بینید آلان یک نمودار از قیمت آوکادو در طول سال های مشخص داریم. یک کار دیگه ای که الان باید انجام بدیم اضافه کردن این میانگین قیمت ها به عنوان یک ستون جدید به دیتاستمون :albany_df[&amp;quotprice25ma&amp;quot] =albany_df[&amp;quotAveragePrice&amp;quot].rolling(25).mean()دوباره یک اخطار بهمون نشون میده که نگرانش نباشید و کمی جلوتر اون رو درست میکنیم. حالا اگر یه نگاهی به دیتاست albany_df بندازیم می بینیم که ستون AveragePrice  به اون اضافه شده :Albany_df.head()خب می بینید که ستون جدید اضافه شده اما توی سطر های اول مقداری برای اون وجود نداره ، پس بریم یه نگاهی بندازیم به انتهای دیتاست   albany_df  :albany_df.tail()خب بریم و در ادامه نمودار قیمت آووکادو براساس نژاد اون ها رو رسم کنیم.  برای اینکار باید بریم سراغ دیتاست اصلی یعنی df و توی اون دنبال نژادهای مختلف آووکادو بگردیم . اهمیت اینکار اونجایی که ما در حال حاضر نمیدونیم چه نژادهایی از آووکادو توی دیتاسن ما وجود دارن اما به سادگی میتونیم یک لیست از این نژادها رو بدست بیاریم :df[‘region’]حالا مقادیر این ستون رو به صورت آرایه یا لیست هم میتونیم نشون بدیم :df[‘region’].valuesو برای تبدیلش به لیست هم از دستور زیر استفاده می کنیم:df[‘region’].values.tolist()اما اگر بخوایم فقط مقادیر unique این لیست رو ببینیم از این دستور استفاده می کنیم :print(set(df[‘region’].values.tolist()))به همین راحتی میتونید از دیتاستی که دارین دیتا بردارید و به آرایه و لیست تبدیل کیند، اما اگر به مفاهیم پایه پایتون مسلط نیستین خود کتابخانه pandas یک method داره برای انجام همین کار :df[‘region’].unique()خب حالا که تونستیم نژادهای مختلف رو پیدا کنیم وقت اون رسیده که براساس اون ها بیایم و یک دیتافریم جدید به اسم graph_df ایجاد کنیم که دیتاهای اون میانگین قیمت آووکادو برای هر نژاد در یک بازه زمانیه مشخصه. اما قبل از اینکه این دیتافریم رو بسازیم باید تغییراتی روی دیتافریم اصلی انجام بدیم، چرا که توی این دیتا فریم آووکادو دو نوع قیمت Organic و Conventional رو داره و ما برای اینکه کار درست پیش بره نیاز داریم یکی از این قیمت ها رو انتخاب کنیم :import pandas as pddf = pd.read_csv(&amp;quotavocado.csv&amp;quot)df = df.copy()[df[&#039;type&#039;]==&#039;organic&#039;]df[&amp;quotDate&amp;quot] =pd.to_datetime(df[&amp;quotDate&amp;quot])df.sort_values(by=&amp;quotDate&amp;quot, ascending=True, inplace=True)df.head()خب حالا وقت ساختن دیتافریم graph_df :graph_df = pd.DataFrame()for region indf[&#039;region&#039;].unique():    region_df =df.copy()[df[&#039;region&#039;]==region]    region_df.set_index(&#039;Date&#039;, inplace=True)    region_df.sort_index(inplace=True)    region_df[f&amp;quot{region}_price25ma&amp;quot] = region_df[&amp;quotAveragePrice&amp;quot].rolling(25).mean()if graph_df.empty:    graph_df =region_df[[f&amp;quot{region}_price25ma&amp;quot]] else:    graph_df =graph_df.join(region_df[f&amp;quot{region}_price25ma&amp;quot])graph_df.tail()و در نهایت قراره که نمودار این دیتاهارو رسم کنیم ، نموداری که نشون میده میانگین قیمت آووکادو در هر تاریخی چقدر بوده:graph_df.plot(figsize=(8,5), legend=False)</description>
                <category>Aiverse</category>
                <author>Aiverse</author>
                <pubDate>Mon, 25 Jul 2022 13:31:37 +0430</pubDate>
            </item>
                    <item>
                <title>تحلیل داده و بصری سازی در پایتون _(پارت 1)</title>
                <link>https://virgool.io/@Aiverse/%D8%AA%D8%AD%D9%84%DB%8C%D9%84-%D8%AF%D8%A7%D8%AF%D9%87-%D9%88-%D8%A8%D8%B5%D8%B1%DB%8C-%D8%B3%D8%A7%D8%B2%DB%8C-%D8%AF%D8%B1-%D9%BE%D8%A7%DB%8C%D8%AA%D9%88%D9%86-%D9%BE%D8%A7%D8%B1%D8%AA-1-k1jpw3oxcpce</link>
                <description>پارت 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 &gt; new &gt; notebookالان وقت اون رسیده که برای شروع csv  فایل رو بخونیم و اون رو نمایش بدیم برای اینکار از متد read_csv استفاده میکنیم :import pandas as pd  df = pd.read_csv(&quot;datasets/avocado.csv&quot;) حالا برای نمایش این dataframe  کافیه فقط اسم اون رو بنویسیم :dfهمونطور که می بینید این خروجی بخاطر حجم زیاد دیتا ممکنه در نگاه اول گیج کننده باشه ، به همین خاطر ما معمولا یک قسمت کوچیک از dataframe  رو نمایش میدیم که مطمئن بشیم همه چیز درست کار میکنه .معمولا برای این کار متد head استفاده میشه :df.head()حتی میشه به متد head  پارامتر پاس داد که این پارامتر نشون دهنده ی تعداد سطر هایی که نمایش داده میشن :df.head(7)گاهی وقت ها ممکنه حالت هایی پیش بیاد که نیاز داشته باشید سطر هایی از انتهای dataframe رو ببینید ، برای اینکار هم متدی به اسم tail وجود داره :df.tail(6)حتی میتونیم به ستون های خاصی ارجاع بدیم و فقط مقادیر اون ستون رو در خروجی ببینیم:df[&#x27;AveragePrice&#x27;].head()یکی از اهداف معمول در حوزه آنالیز داده ، بصری سازی داده هاست. چون همه نمودارها رو دوست دارن بعلاوه  اونها کمک میکنن که به خوبی داده ها رو تعمیم بدیم. اگر به دیتاستی که باهاش کار میکنیم یه نگاهی بندازید، می بینید که در واقع این دیتاها براساس زمان (ستون date) و نژاد(regions) اوکادو ها دسته بندی شدن.پس ما میتونیم  نمودارهای خطی برای هر نژاد براساس زمان رو داشته باشیم. برای انیکار نیاز داریم یک کتابخانه دیگه به اسم matplotlib  رو هم اضافه کنیم ، در اولین قدم این دستور رو توی ترمینال اجرا میکنیم:pip install matplotlibاما قبل از اون باید اطلاعات هر نژاد رو به صورت یک دیتافریم جداگانه ذخیره کنیم :albany_df = df[df[&#x27;region&#x27;]==&quot;Albany&quot;]این دستور ممکنه کمی گیج کننده باشه اما به صورت خیلی ساده اون رو میشه به این صورت ترجمه کرد ، albany_df یک دیتافریم است که تمام دیتاهایی اون از دیتافریم اصلی میاد که مقادیر ستون df[&#x27;region&#x27;] برابر Albany است. اگر یه نگاهی به این دیتافریم جدید بندازیم به این شکل میشه:albany_df.head()یک ویژگی دیگه از دیتافریم ها که ممکنه به دفعات زیاد ببینید اینکه دیتافریم ها به وسیله یک چیزی شماره گذاری یا index  شدن . برای اینکه بدونیم  index  دیتافریم ما چیه به این صورت عمل میکنیم:albany_df.indexتوی این حالت می بینید که اعداد برای ما اینکار رو میکنن که خیلی استفاده مفیدی ازش نمیشه کرد ، پس بجای اون میتونیم از یکی از ستون های مهم که دارای مقادیر متمایز هست استفاده کنیم. که توی این dataframe ستون date این قابلیت رو داره :albany_df = albany_df.set_index(&quot;Date&quot;)با انجام دادن این کار الان نوبت اون رسیده که نمودار رو برای این دیتا فریم جدید رسم کنیم:albany_df[&#x27;AveragePrice&#x27;].plot()وقتی تابع plot رو روی یک دیتافریم فراخوانی میکنیم ، توی نمودار رسم شده مقادیر محور x به صورت پیش فرض برابر مقادیر ستون  index  و مقادیر محور y رو به عنوان ورودی به تابع میدیم.پارت دوم به زودی میاد و لینکش رو هم همینجا میذارم</description>
                <category>Aiverse</category>
                <author>Aiverse</author>
                <pubDate>Mon, 18 Jul 2022 13:51:38 +0430</pubDate>
            </item>
            </channel>
</rss>