Python Programming

تجزیه و تحلیل داده با Pandas و NumPy: راهنمای کامل برای توسعه‌دهندگان

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

درک پایه‌ها: NumPy

NumPy (Numerical Python) پایه محاسبات عددی در پایتون را فراهم می‌کند. این کتابخانه از پشتیبانی برای آرایه‌های چندبعدی و ماتریس‌های بزرگ به همراه مجموعه‌ای از توابع ریاضی برای عملیات کارآمد بر روی این آرایه‌ها استفاده می‌کند.

import numpy as np

# ایجاد آرایه‌ها
arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array([[1, 2, 3], [4, 5, 6]])

# عملیات اولیه
sum_arr = np.sum(arr1)
mean_arr = np.mean(arr2, axis=1)
reshaped = arr1.reshape(1, 5)

print(f"Sum: {sum_arr}, Mean: {mean_arr}")

Pandas: اسب کار تحلیل داده

Pandas بر پایه قابلیت‌های NumPy ساخته شده است و ساختارهای داده‌ای خاص برای تحلیل داده ارائه می‌دهد. ساختارهای اصلی داده شامل Series (1D) و DataFrame (2D) هستند که راه‌هایی ساده برای کار با داده‌های ساختاریفای کار می‌دهند.

import pandas as pd

# ایجاد DataFrame

data = {
    'name': ['Alice', 'Bob', 'Charlie', 'Diana'],
    'age': [25, 30, 35, 28],
    'salary': [50000, 60000, 70000, 55000],
    'department': ['IT', 'HR', 'Finance', 'IT']
}

df = pd.DataFrame(data)
print(df)

# آمارهای اولیه
print(df.describe())
print(df.groupby('department')['salary'].mean())

پاک‌سازی و پیش‌پردازش داده

داده‌های واقعی نادرآمد در شرایط ایده‌آل ورود می‌کنند. تحلیل داده‌ای مؤثر با پاک‌سازی و پیش‌پردازش مناسب شروع می‌شود. Pandas ابزارهای قوی برای مدیریت داده‌های ناقص، تکراری و تغییر نوع داده فراهم می‌کند.

# مدیریت داده‌های ناقص
df_with_nan = df.copy()
df_with_nan.loc[1, 'age'] = np.nan

# حذف ردیف‌های دارای مقدار ناقص
cleaned_df = df_with_nan.dropna()

# پر کردن مقادیر ناقص
df_filled = df_with_nan.fillna({'age': df_with_nan['age'].mean()})

# حذف تکراری‌ها
df_no_duplicates = df.drop_duplicates()

# تغییر نوع داده
df['age'] = df['age'].astype('int64')

تغییر داده‌های پیشرفته

Pandas روش‌های پیشرفته‌ای برای تبدیل و فیلتر کردن داده‌ها ارائه می‌دهد. درک این توانمندی‌ها برای جریان‌های کاری مؤثر تحلیل داده ضروری است.

# فیلتر کردن و عملیات شرطی
high_earners = df[df['salary'] > 55000]
filtered_df = df[df['age'].between(25, 30)]

# استفاده از روش query
query_result = df.query('salary > 55000 and age < 35')

# اعمال توابع به ستون‌ها
df['salary_category'] = df['salary'].apply(lambda x: 'High' if x > 60000 else 'Standard')

# ادغام داده‌ها
df2 = pd.DataFrame({
    'name': ['Alice', 'Bob'],
    'bonus': [5000, 7000]
})
merged_df = pd.merge(df, df2, on='name', how='left')

تکنیک‌های بهینه‌سازی عملکرد

هنگام کار با مجموعه‌های داده بزرگ، عملکرد بسیار حیاتی است. هر دو Pandas و NumPy استراتژی‌های بهینه‌سازی برای مدیریت داده‌های بزرگ فراهم می‌کنند.

# عملیات برداری (سریع)
arr = np.random.rand(1000000)
result = arr * 2 + 1  # عملیات برداری

# استفاده از eval برای عبارات پیچیده
df['new_col'] = df.eval('age * salary')

# عملیات گروه‌بندی کارآمد
grouped = df.groupby('department').agg({
    'salary': ['mean', 'sum', 'count'],
    'age': 'mean'
})

# استفاده از داده‌های دسته‌ای برای کارایی حافظه
df['department'] = df['department'].astype('category')

مثال عملی: تحلیل داده فروش

بیایید این مفاهیم را در یک مثال جامع از تحلیل داده فروش به کار بگیریم.

import pandas as pd
import numpy as np
from datetime import datetime, timedelta

# تولید داده‌های نمونه فروش

dates = pd.date_range('2023-01-01', periods=1000, freq='D')
sales_data = {
    'date': dates,
    'product': np.random.choice(['A', 'B', 'C', 'D'], 1000),
    'sales_amount': np.random.uniform(100, 1000, 1000),
    'region': np.random.choice(['North', 'South', 'East', 'West'], 1000)
}

df_sales = pd.DataFrame(sales_data)

# پاک‌سازی داده

df_sales['date'] = pd.to_datetime(df_sales['date'])
df_sales['month'] = df_sales['date'].dt.month
df_sales['quarter'] = df_sales['date'].dt.quarter

# تحلیل

monthly_sales = df_sales.groupby('month')['sales_amount'].sum()
product_performance = df_sales.groupby('product')['sales_amount'].agg(['sum', 'mean', 'count'])
regional_analysis = df_sales.groupby(['region', 'product'])['sales_amount'].sum().unstack(fill_value=0)

print("Monthly Sales:")
print(monthly_sales)
print("\nProduct Performance:")
print(product_performance)
print("\nRegional Analysis:")
print(regional_analysis)

نتیجه‌گیری

Pandas و NumPy مجموعه ابزار ضروری برای تحلیل داده در پایتون هستند. در حالی که NumPy پایه عددی را با عملیات آرایه‌ای کارآمد فراهم می‌کند، Pandas قابلیت‌های پیشرفته تغییر داده‌ها را برای انجام وظایف تحلیلی واقعی اضافه می‌کند. مسلط شدن به این کتابخانه‌ها به توسعه‌دهندگان اجازه می‌دهد داده‌های خام را به بینش‌های معنادار تبدیل کنند، که آنها را به دارایی‌های ارزشمند در هر پروژه مبتنی بر داده تبدیل می‌کند.

با درک توانمندی‌های آنها و دنبال کردن روش‌های بهتر برای بهینه‌سازی عملکرد، توسعه‌دهندگان می‌توانند با اطمینان داده‌های هر اندازه و پیچیدگی را مدیریت کنند. چه در حال ساخت برنامه‌های هوش کسب‌وکار، انجام تحقیقات علمی یا پیاده‌سازی خطوط لوله یادگیری ماشین باشید، این ابزارها پایه‌ای برای تحلیل داده مؤثر خواهند بود.

Share: