چرا Pandas؟

Pandas کتابخانه‌ای در پایتون است که کار با داده‌های جدولی را ساده می‌کند. ساختار اصلی آن DataFrame نام دارد و دقیقاً معادل همان صفحه داده‌ای است که در SPSS یا Excel می‌بینید: سطرها مشاهدات و ستون‌ها متغیرها.

مزیت اصلی Pandas نسبت به کار با منو این است که هر کاری که انجام می‌دهید کد می‌شود. یعنی شش ماه بعد دقیقاً می‌دانید چه کرده‌اید، و اگر داده‌ها به‌روزرسانی شوند کافی است همان اسکریپت را دوباره اجرا کنید.

خواندن داده

Pandas تقریباً همه فرمت‌های رایج را می‌خواند، از جمله فایل خروجی SPSS:

import pandas as pd # فایل اکسل df = pd.read_excel('data.xlsx') # فایل CSV df = pd.read_csv('data.csv') # فایل SPSS df = pd.read_spss('data.sav')

برای فایل‌های فارسی که با Excel ساخته شده‌اند، اگر متن‌ها به‌هم‌ریخته دیده شدند پارامتر encoding را روی 'utf-8-sig' بگذارید.

شناخت اولیه داده

پیش از هر تحلیلی باید بدانید با چه چیزی سروکار دارید:

df.shape # تعداد سطر و ستون df.head(10) # ده سطر اول df.info() # نوع داده هر ستون و تعداد مقادیر موجود df.describe() # آمار توصیفی متغیرهای عددی df['gender'].value_counts() # فراوانی یک متغیر رسته‌ای

دستور describe() همان چیزی را می‌دهد که در SPSS از مسیر Descriptives می‌گرفتید: تعداد، میانگین، انحراف استاندارد، کمینه، بیشینه و چارک‌ها.

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

داده‌های گمشده

# شمارش داده گمشده در هر ستون df.isnull().sum() # حذف سطرهایی که در ستون مشخصی داده ندارند df = df.dropna(subset=['satisfaction']) # جایگزینی با میانگین df['age'] = df['age'].fillna(df['age'].mean())

جایگزینی با میانگین ساده‌ترین روش است اما واریانس داده را کاهش می‌دهد. اگر درصد داده گمشده بالاست، روش‌های جایگزینی چندگانه انتخاب بهتری هستند و باید در بخش روش پژوهش توضیح داده شوند.

تغییر نام و نوع ستون‌ها

df = df.rename(columns={'Q1': 'satisfaction', 'Q2': 'loyalty'}) df['age'] = df['age'].astype(int)

بازکدگذاری گویه‌های معکوس

معادل Recode در SPSS، برای طیف لیکرت پنج‌گزینه‌ای:

df['q5_reversed'] = 6 - df['q5']

ساخت نمره سازه

میانگین چند گویه که یک سازه را می‌سنجند:

items = ['q1', 'q2', 'q3', 'q4', 'q5_reversed'] df['satisfaction_score'] = df[items].mean(axis=1)

گروه‌بندی و جدول توصیفی

معادل Split File یا Compare Means در SPSS:

# میانگین رضایت به تفکیک جنسیت df.groupby('gender')['satisfaction_score'].mean() # چند شاخص هم‌زمان df.groupby('gender')['satisfaction_score'].agg(['count', 'mean', 'std']) # جدول توافقی دو متغیر pd.crosstab(df['gender'], df['education'])

برای فیلتر کردن داده‌ها هم به همین سادگی عمل می‌کنید:

young = df[df['age'] < 30] managers_female = df[(df['role'] == 'manager') & (df['gender'] == 'female')]

اجرای آزمون آماری

Pandas خودش آزمون آماری اجرا نمی‌کند، اما به‌راحتی با SciPy ترکیب می‌شود:

from scipy import stats male = df[df['gender'] == 'male']['satisfaction_score'] female = df[df['gender'] == 'female']['satisfaction_score'] t, p = stats.ttest_ind(male, female, equal_var=False) print(t, p)

خروجی گرفتن

summary = df.groupby('gender')['satisfaction_score'].agg(['count', 'mean', 'std']) summary.to_excel('summary.xlsx')

جدول حاصل مستقیماً قابل استفاده در فصل چهارم پایان‌نامه یا بخش نتایج مقاله است.

جمع‌بندی

  • DataFrame در Pandas معادل صفحه داده SPSS است.
  • با read_spss می‌توانید فایل‌های sav. را مستقیم بخوانید.
  • describe و value_counts سریع‌ترین راه شناخت داده‌اند.
  • groupby معادل Compare Means است و جدول‌های توصیفی می‌سازد.
  • برای آزمون‌های آماری، Pandas را با SciPy ترکیب کنید.