0%
در حال بارگذاری...

جستجو در سایت

درس ۳ سطح متوسط: تحلیل داده با pandas و numpy در پایتون

پایتون | 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))

۱۲ تمرین آتشین برای تسلط کامل

  1. یه DataFrame از دیکشنری خودت بساز و ۵ ردیف اول رو نشون بده
  2. یه فایل CSV واقعی دانلود کن و بخونش
  3. همه ردیف‌هایی که مبلغ بالای ۱ میلیون تومنه رو فیلتر کن
  4. میانگین فروش هر شهر رو حساب کن و به ترتیب نزولی نشون بده
  5. نمودار فروش ماهانه بکش
  6. داده‌های خالی رو پیدا کن و حذفشون کن
  7. دو جدول فروش و مشتریان رو با merge ترکیب کن
  8. یه pivot table بساز که فروش هر محصول در هر ماه رو نشون بده
  9. نتایج تحلیل رو توی یه فایل Excel جدید ذخیره کن
  10. نمودار پراکندگی بین قیمت و تعداد بکش
  11. همبستگی بین متغیرها رو حساب کن
  12. یه کلاس کامل تحلیل فروش بساز با حداقل ۵ متد

پروژه نهایی درس: داشبورد کامل فروش فروشگاه

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 یا اکسلی نمی‌تونه جلوت وایسه. درس بعدی قراره الگوریتم‌های بازگشتی و پیشرفته رو یاد بگیری – جایی که واقعاً مغزت رو به چالش می‌کشی و مثل یه برنامه‌نویس حرفه‌ای فکر می‌کنی. تمرین‌ها رو انجام بده، پروژه رو بساز و منتظر درس بعدی باش. مسیرت پر از موفقیت باشه!

ارسال نظر جدید

گزارش دیدگاه