خانه / درس ۳ سطح متوسط: تحلیل داده با pandas و numpy در پایتون درس ۳ سطح متوسط: تحلیل داده با pandas و numpy در پایتون 📅 ۱۴۰۴/۰۹/۰۶ ✍️ سجاد ⌛ 4 دقیقه مطالعه 👁️ 17 پایتون | Python متوسط 🗨️ 🤍 0 📤 0% ‹ بستن لیست دروس بازکردن لیست دروس پایتون | Python متوسط ▾ سلام قهرمان! تبریک میگم که تا درس سوم سطح متوسط پایتون رسیدی. الان دیگه یه برنامهنویس معمولی نیستی. تو همین لحظه داری تبدیل میشی به یه تحلیلگر داده واقعی که میتونه با هزاران و حتی میلیونها ردیف داده کار کنه، تمیزشون کنه، الگوهای مخفی رو کشف کنه، نمودارهای حرفهای بکشه و تصمیمهای هوشمندانه بگیره. تو این درس من بهت قول میدم بعد از تموم شدنش، وقتی به دوستات بگی «من با پایتون تحلیل داده میکنم»، چشمای همه گرد بشه! چون قراره با دو تا از قدرتمندترین و محبوبترین کتابخانههای دنیا یعنی pandas و numpy آشنا بشی و مثل یه حرفهای باهاشون کار کنی. اگه درسهای مبتدی رو کامل دیدی (مخصوصاً لیست، دیکشنری، حلقهها، توابع، فایلها و شیءگرایی)، الان بهترین زمانه که یه جهش بزرگ بکنی و وارد دنیای واقعی دادهها بشی. آمادهای؟ کمربندت رو ببند، چون قراره خیلی هیجانانگیز بشه! pandas و numpy دقیقاً چیه و چرا همه عاشقشون هستن؟ بیا یه مثال ساده بزنم: فکر کن یه فایل اکسل داری با ۵۰ هزار ردیف فروش یه فروشگاه. میخوای بدونی کدوم محصول بیشتر فروخته شده، فروش هر ماه چقدر بوده، مشتریهای تهران چقدر خرید کردن، یا حتی پیشبینی کنی ماه بعد چقدر فروش داری. با اکسل تا ۱۰۰۰ ردیف شاید بتونی کار کنی، ولی بعدش سیستم هنگ میکنه. اینجا pandas وارد میشه و مثل یه ابرقهرمان همه کارها رو در چند ثانیه انجام میده! numpy هم موتور محاسباتی پایتونه. همه محاسبات سنگین ریاضی، ماتریس، آمار و هوش مصنوعی روی numpy اجرا میشن. در واقع pandas خودش از numpy استفاده میکنه. پس وقتی این دوتا رو یاد بگیری، دروازهی دیتا ساینس، یادگیری ماشین و هوش مصنوعی برات باز میشه. نصب کتابخانهها (فقط یک بار در عمر) کپیpip install pandas numpy matplotlib seaborn openpyxl این دستور همه چیزایی که نیاز داری رو نصب میکنه: pandas برای جدولها، numpy برای محاسبات، matplotlib و seaborn برای نمودارهای زیبا و openpyxl برای کار با فایلهای اکسل. اولین قدم: با Series و DataFrame آشنا شو قلب تپنده pandas دو تا مفهوم اصلیه: Series و DataFrame. Series مثل یه لیست پیشرفتهست که ایندکس دلخواه داره. مثلاً میتونی نمره دانشجوها رو با اسمشون ذخیره کنی. اما DataFrame جدول واقعیه! دقیقاً مثل همون چیزی که توی اکسل میبینی. کپیimport pandas as pd import numpy as np # Series scores = pd.Series([18, 20, 15, 19], index=['علی', 'مریم', 'رضا', 'سارا']) print(scores) # DataFrame data = { 'نام': ['علی', 'مریم', 'رضا', 'سارا'], 'نمره': [۱۸, ۲۰, ۱۵, ۱۹], 'شهر': ['تهران', 'اصفهان', 'شیراز', 'تبریز'], 'سن': [۲۱, ۲۲, ۲۰, ۲۳] } df = pd.DataFrame(data) print(df) خواندن داده از هر جایی! یکی از جادوهای pandas اینه که میتونه داده رو از هر فرمتی بخونه: کپی# CSV df = pd.read_csv('sales.csv', encoding='utf-8') # Excel df = pd.read_excel('report.xlsx', sheet_name='Sheet1') # JSON df = pd.read_json('data.json') ۱۰ دستور طلایی که ۹۰ درصد کار تحلیل رو انجام میدن دستور کاربرد df.head(10) ۱۰ ردیف اول df.info() خلاصه نوع دادهها df.describe() آمار توصیفی df[‘ستون’] انتخاب ستون df.loc[شرط] فیلتر ردیفها df.isnull().sum() دادههای خالی df.groupby(‘ستون’).mean() گروهبندی df.sort_values(‘ستون’) مرتبسازی df.to_csv(‘new.csv’) ذخیره df.corr() همبستگی مثال واقعی: تحلیل فروش یک فروشگاه بزرگ کپیdf = pd.read_csv('sales_2024.csv', encoding='utf-8') # فروش کل total = df['مبلغ'].sum() print(f"فروش کل سال: {total:,} تومان") # پرفروشترین محصولات top10 = df.groupby('محصول')['تعداد'].sum().sort_values(ascending=False).head(10) print("پرفروشترین محصولات:\n", top10) # فروش ماهانه df['تاریخ'] = pd.to_datetime(df['تاریخ']) monthly = df.groupby(df['تاریخ'].dt.month)['مبلغ'].sum() # نمودار import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize=(10,6)) monthly.plot(kind='bar', color='skyblue') plt.title('فروش ماهانه فروشگاه') plt.xlabel('ماه') plt.ylabel('مبلغ (تومان)') plt.show() ترکیب pandas با شیءگرایی – مثل یه حرفهای کد بزن! کپیclass SalesAnalyzer: def __init__(self, file_path): self.df = pd.read_csv(file_path, encoding='utf-8') self.df['تاریخ'] = pd.to_datetime(self.df['تاریخ']) def total_sales(self): return self.df['مبلغ'].sum() def top_products(self, n=5): return self.df.groupby('محصول')['تعداد'].sum().nlargest(n) analyzer = SalesAnalyzer('sales.csv') print("فروش کل:", analyzer.total_sales()) print(analyzer.top_products(3)) ۱۲ تمرین آتشین برای تسلط کامل یه DataFrame از دیکشنری خودت بساز و ۵ ردیف اول رو نشون بده یه فایل CSV واقعی دانلود کن و بخونش همه ردیفهایی که مبلغ بالای ۱ میلیون تومنه رو فیلتر کن میانگین فروش هر شهر رو حساب کن و به ترتیب نزولی نشون بده نمودار فروش ماهانه بکش دادههای خالی رو پیدا کن و حذفشون کن دو جدول فروش و مشتریان رو با merge ترکیب کن یه pivot table بساز که فروش هر محصول در هر ماه رو نشون بده نتایج تحلیل رو توی یه فایل Excel جدید ذخیره کن نمودار پراکندگی بین قیمت و تعداد بکش همبستگی بین متغیرها رو حساب کن یه کلاس کامل تحلیل فروش بساز با حداقل ۵ متد پروژه نهایی درس: داشبورد کامل فروش فروشگاه کپیimport pandas as pd import matplotlib.pyplot as plt import seaborn as sns class SalesDashboard: def __init__(self, file): self.df = pd.read_csv(file, encoding='utf-8') self.df['تاریخ'] = pd.to_datetime(self.df['تاریخ']) def overview(self): print(f"فروش کل: {self.df['مبلغ'].sum():,}") print(f"تعداد تراکنش: {len(self.df)}") print(f"میانگین فروش: {self.df['مبلغ'].mean():,.0f}") def plot_dashboard(self): fig, axes = plt.subplots(2, 2, figsize=(15,10)) monthly = self.df.groupby(self.df['تاریخ'].dt.month)['مبلغ'].sum() monthly.plot(kind='bar', ax=axes[0,0], title='فروش ماهانه') self.df['محصول'].value_counts().head(8).plot(kind='pie', ax=axes[0,1], autopct='%1.1f%%') daily = self.df.groupby('تاریخ')['مبلغ'].sum() daily.plot(ax=axes[1,0], title='روند روزانه') axes[1,1].scatter(self.df['تعداد'], self.df['مبلغ'], alpha=0.5) axes[1,1].set_title('قیمت در مقابل تعداد') plt.tight_layout() plt.show() dashboard = SalesDashboard('sales_2024.csv') dashboard.overview() dashboard.plot_dashboard() جمعبندی و قدم بعدی تبریک میگم قهرمان! تو همین الان یه تحلیلگر داده با پایتون شدی. دیگه هیچ فایل CSV یا اکسلی نمیتونه جلوت وایسه. درس بعدی قراره الگوریتمهای بازگشتی و پیشرفته رو یاد بگیری – جایی که واقعاً مغزت رو به چالش میکشی و مثل یه برنامهنویس حرفهای فکر میکنی. تمرینها رو انجام بده، پروژه رو بساز و منتظر درس بعدی باش. مسیرت پر از موفقیت باشه! ← درس قبلی: درس ۸ سطح متوسط: امنیت در پایتون – رمزنگاری، اعتبارسنجی، جلوگیری از حملات و نوشتن کد امن برچسبها: csvdata analysisexcelmatplotlibnumpypandaspython pandasseabornآموزش متوسط پایتونپانداسپایتونپروژه پایتونتحلیل دادهتحلیل فروشداشبورد فروشدیتا ساینسدیتافریمعلم دادهنامپییادگیری ماشین ارسال نظر جدید لغو پاسخ ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم.
سلام قهرمان! تبریک میگم که تا درس سوم سطح متوسط پایتون رسیدی. الان دیگه یه برنامهنویس معمولی نیستی. تو همین لحظه داری تبدیل میشی به یه تحلیلگر داده واقعی که میتونه با هزاران و حتی میلیونها ردیف داده کار کنه، تمیزشون کنه، الگوهای مخفی رو کشف کنه، نمودارهای حرفهای بکشه و تصمیمهای هوشمندانه بگیره. تو این درس من بهت قول میدم بعد از تموم شدنش، وقتی به دوستات بگی «من با پایتون تحلیل داده میکنم»، چشمای همه گرد بشه! چون قراره با دو تا از قدرتمندترین و محبوبترین کتابخانههای دنیا یعنی pandas و numpy آشنا بشی و مثل یه حرفهای باهاشون کار کنی. اگه درسهای مبتدی رو کامل دیدی (مخصوصاً لیست، دیکشنری، حلقهها، توابع، فایلها و شیءگرایی)، الان بهترین زمانه که یه جهش بزرگ بکنی و وارد دنیای واقعی دادهها بشی. آمادهای؟ کمربندت رو ببند، چون قراره خیلی هیجانانگیز بشه! pandas و numpy دقیقاً چیه و چرا همه عاشقشون هستن؟ بیا یه مثال ساده بزنم: فکر کن یه فایل اکسل داری با ۵۰ هزار ردیف فروش یه فروشگاه. میخوای بدونی کدوم محصول بیشتر فروخته شده، فروش هر ماه چقدر بوده، مشتریهای تهران چقدر خرید کردن، یا حتی پیشبینی کنی ماه بعد چقدر فروش داری. با اکسل تا ۱۰۰۰ ردیف شاید بتونی کار کنی، ولی بعدش سیستم هنگ میکنه. اینجا pandas وارد میشه و مثل یه ابرقهرمان همه کارها رو در چند ثانیه انجام میده! numpy هم موتور محاسباتی پایتونه. همه محاسبات سنگین ریاضی، ماتریس، آمار و هوش مصنوعی روی numpy اجرا میشن. در واقع pandas خودش از numpy استفاده میکنه. پس وقتی این دوتا رو یاد بگیری، دروازهی دیتا ساینس، یادگیری ماشین و هوش مصنوعی برات باز میشه. نصب کتابخانهها (فقط یک بار در عمر) کپیpip install pandas numpy matplotlib seaborn openpyxl این دستور همه چیزایی که نیاز داری رو نصب میکنه: pandas برای جدولها، numpy برای محاسبات، matplotlib و seaborn برای نمودارهای زیبا و openpyxl برای کار با فایلهای اکسل. اولین قدم: با Series و DataFrame آشنا شو قلب تپنده pandas دو تا مفهوم اصلیه: Series و DataFrame. Series مثل یه لیست پیشرفتهست که ایندکس دلخواه داره. مثلاً میتونی نمره دانشجوها رو با اسمشون ذخیره کنی. اما DataFrame جدول واقعیه! دقیقاً مثل همون چیزی که توی اکسل میبینی. کپیimport pandas as pd import numpy as np # Series scores = pd.Series([18, 20, 15, 19], index=['علی', 'مریم', 'رضا', 'سارا']) print(scores) # DataFrame data = { 'نام': ['علی', 'مریم', 'رضا', 'سارا'], 'نمره': [۱۸, ۲۰, ۱۵, ۱۹], 'شهر': ['تهران', 'اصفهان', 'شیراز', 'تبریز'], 'سن': [۲۱, ۲۲, ۲۰, ۲۳] } df = pd.DataFrame(data) print(df) خواندن داده از هر جایی! یکی از جادوهای pandas اینه که میتونه داده رو از هر فرمتی بخونه: کپی# CSV df = pd.read_csv('sales.csv', encoding='utf-8') # Excel df = pd.read_excel('report.xlsx', sheet_name='Sheet1') # JSON df = pd.read_json('data.json') ۱۰ دستور طلایی که ۹۰ درصد کار تحلیل رو انجام میدن دستور کاربرد df.head(10) ۱۰ ردیف اول df.info() خلاصه نوع دادهها df.describe() آمار توصیفی df[‘ستون’] انتخاب ستون df.loc[شرط] فیلتر ردیفها df.isnull().sum() دادههای خالی df.groupby(‘ستون’).mean() گروهبندی df.sort_values(‘ستون’) مرتبسازی df.to_csv(‘new.csv’) ذخیره df.corr() همبستگی مثال واقعی: تحلیل فروش یک فروشگاه بزرگ کپیdf = pd.read_csv('sales_2024.csv', encoding='utf-8') # فروش کل total = df['مبلغ'].sum() print(f"فروش کل سال: {total:,} تومان") # پرفروشترین محصولات top10 = df.groupby('محصول')['تعداد'].sum().sort_values(ascending=False).head(10) print("پرفروشترین محصولات:\n", top10) # فروش ماهانه df['تاریخ'] = pd.to_datetime(df['تاریخ']) monthly = df.groupby(df['تاریخ'].dt.month)['مبلغ'].sum() # نمودار import matplotlib.pyplot as plt import seaborn as sns plt.figure(figsize=(10,6)) monthly.plot(kind='bar', color='skyblue') plt.title('فروش ماهانه فروشگاه') plt.xlabel('ماه') plt.ylabel('مبلغ (تومان)') plt.show() ترکیب pandas با شیءگرایی – مثل یه حرفهای کد بزن! کپیclass SalesAnalyzer: def __init__(self, file_path): self.df = pd.read_csv(file_path, encoding='utf-8') self.df['تاریخ'] = pd.to_datetime(self.df['تاریخ']) def total_sales(self): return self.df['مبلغ'].sum() def top_products(self, n=5): return self.df.groupby('محصول')['تعداد'].sum().nlargest(n) analyzer = SalesAnalyzer('sales.csv') print("فروش کل:", analyzer.total_sales()) print(analyzer.top_products(3)) ۱۲ تمرین آتشین برای تسلط کامل یه DataFrame از دیکشنری خودت بساز و ۵ ردیف اول رو نشون بده یه فایل CSV واقعی دانلود کن و بخونش همه ردیفهایی که مبلغ بالای ۱ میلیون تومنه رو فیلتر کن میانگین فروش هر شهر رو حساب کن و به ترتیب نزولی نشون بده نمودار فروش ماهانه بکش دادههای خالی رو پیدا کن و حذفشون کن دو جدول فروش و مشتریان رو با merge ترکیب کن یه pivot table بساز که فروش هر محصول در هر ماه رو نشون بده نتایج تحلیل رو توی یه فایل Excel جدید ذخیره کن نمودار پراکندگی بین قیمت و تعداد بکش همبستگی بین متغیرها رو حساب کن یه کلاس کامل تحلیل فروش بساز با حداقل ۵ متد پروژه نهایی درس: داشبورد کامل فروش فروشگاه کپیimport pandas as pd import matplotlib.pyplot as plt import seaborn as sns class SalesDashboard: def __init__(self, file): self.df = pd.read_csv(file, encoding='utf-8') self.df['تاریخ'] = pd.to_datetime(self.df['تاریخ']) def overview(self): print(f"فروش کل: {self.df['مبلغ'].sum():,}") print(f"تعداد تراکنش: {len(self.df)}") print(f"میانگین فروش: {self.df['مبلغ'].mean():,.0f}") def plot_dashboard(self): fig, axes = plt.subplots(2, 2, figsize=(15,10)) monthly = self.df.groupby(self.df['تاریخ'].dt.month)['مبلغ'].sum() monthly.plot(kind='bar', ax=axes[0,0], title='فروش ماهانه') self.df['محصول'].value_counts().head(8).plot(kind='pie', ax=axes[0,1], autopct='%1.1f%%') daily = self.df.groupby('تاریخ')['مبلغ'].sum() daily.plot(ax=axes[1,0], title='روند روزانه') axes[1,1].scatter(self.df['تعداد'], self.df['مبلغ'], alpha=0.5) axes[1,1].set_title('قیمت در مقابل تعداد') plt.tight_layout() plt.show() dashboard = SalesDashboard('sales_2024.csv') dashboard.overview() dashboard.plot_dashboard() جمعبندی و قدم بعدی تبریک میگم قهرمان! تو همین الان یه تحلیلگر داده با پایتون شدی. دیگه هیچ فایل CSV یا اکسلی نمیتونه جلوت وایسه. درس بعدی قراره الگوریتمهای بازگشتی و پیشرفته رو یاد بگیری – جایی که واقعاً مغزت رو به چالش میکشی و مثل یه برنامهنویس حرفهای فکر میکنی. تمرینها رو انجام بده، پروژه رو بساز و منتظر درس بعدی باش. مسیرت پر از موفقیت باشه! ← درس قبلی: درس ۸ سطح متوسط: امنیت در پایتون – رمزنگاری، اعتبارسنجی، جلوگیری از حملات و نوشتن کد امن برچسبها: csvdata analysisexcelmatplotlibnumpypandaspython pandasseabornآموزش متوسط پایتونپانداسپایتونپروژه پایتونتحلیل دادهتحلیل فروشداشبورد فروشدیتا ساینسدیتافریمعلم دادهنامپییادگیری ماشین