بارگذاری فایل SPSS در پایتون — راهنمای کاربردی
نرمافزار کاربردی SPSS به عنوان یک ابزار تحلیل و انجام محاسبات آماری از محبوبیت خاصی برخوردار است. ولی با توجه به فراگیر شدن کتابخانههای پایتون برای تحلیلهای آماری بخصوص در حوزه یادگیری ماشین، نیاز است که فایلهای اطلاعاتی مربوط به نرمافزار SPSS در برنامههای پایتون قابل استفاده باشند. در این نوشتار به نحوه بارگذاری فایل spss در پایتون خواهیم پرداخت. همچنین با ذخیرهسازی فایلهای اطلاعاتی در قالب SPSS با استفاده از پایتون نیز آشنا خواهیم شد.
در نوشتارهای دیگر مانند افزونه های پایتون در SPSS – راهنمای کاربردی و پایتون در SPSS — راهنمای گام به گام با نحوه ارتباط SPSS و شیوه برنامهنویسی با پایتون در محیط نرمافزار SPSS آشنا شدیم. اما در این مطلب قصد داریم نحوه فراخوانی و ذخیره اطلاعات حاصل از نرمافزار SPSS به درون پایتون را با کدهای برنامهنویسی و کتابخانههای Pandas و pyreadstat فرا بگیریم.
بارگذاری فایل SPSS در پایتون
قالب فایلهای اطلاعاتی در SPSS با پسوند sav. مشخص میشوند. این پسوند مخفف Spss Attributes and Values است که به منظور ذخیرهسازی متغیرها و مقادیرشان ایجاد شده است. اطلاعات به صورت دو دویی در فایلهای اطلاعاتی SPSS ذخیره میشوند. هر چند SPSS این قالب فایل را به عنوان خود به ثبت نرسانده است ولی کمتر نرمافزاری از این قالب و نوع فایل برای ثبت اطلاعات استفاده میکند. بنابراین شاید بتوان پسوند sav. را به نوعی در انحصار نرمافزار SPSS دانست.
از آنجایی که برای ثبت و ذخیرهسازی مجموعه دادهها، پایتون ابزار مناسبی محسوب نمیشود، اغلب دادهها در قالب پروندههای اکسل یا SPSS یا صفحه گستردههای مطرح، ثبت شده ولی برای انجام محاسبات آماری روی آنها از دستورات و کدهای پایتون استفاده میشود. بنابراین فراخوانی و بارگذاری چنین پروندههایی در پایتون ضروری به نظر میرسد. در این بین کتابخانه Pandas توابعی مخصوص انجام این امور را در خود دارد. همچنین از کتابخانه pyreadstat نیز برای خواندن و ثبت اطلاعات با قالب SPSS میتوان استفاده کرد.
فراخوانی فایل SPSS در Pandas
با استفاده از دستورات و توابع کتابخانه Pandas به راحتی میتوان اطلاعات مربوط به فایلهای sav را به پایتون منتقل و از آنها برای انجام محاسبات استفاده کرد. ابتدا کتابخانه pandas را بارگذاری کرده و از دستور read_spss برای فراخوانی فایل اطلاعاتی sav کمک میگیریم.
1import pandas as pd
2df=pd.read_spss(''./SimData/survey_1.sav'')
3df.tail()
به این ترتیب با مشخص کردن مسیر و نام فایل در دستور pd.read_spss اطلاعات مربوطه در حافظه و مجموعه داده df بارگذاری میشود.
نکته: فرض بر این است که نام فایل مورد نظر survery_1.sav بوده و در پوشه SimData قرار دارد. این فایل را میتوانید به صورت فشرده از این لینک دریافت کنید.
فرض کنید این فایل شامل اطلاعاتی نظیر شماره ردیف (ID)، نام (Name)، روز هفته (Day)، سن (Age) و پاسخ (Response) و همچنین جنسیت (Gender) باشد. نتیجه دستورات گفته شده به شکل زیر خواهد بود.
اگر بخواهیم قسمتی از متغیرها را انتخاب و در چارچوب داده df قرار دهیم، کافی است از دستور زیر کمک بگیریم.
1cols = ['ID', 'Day', 'Age', 'Response', 'Gender']
2df = pd.read_spss('./SimData/survey_1.sav', usecols=cols)
3df.head()
با این کار از متغیر نام (Name) چشم پوشی شده و چند سطر اول چارچوب داده (DataFrame) ظاهر خواهد شد. مشخص است که پارامتر usecol موجب شده است که بعضی از ستونها که در متغیر cols مشخص شدهاند برای نمایش و استخراج اطلاعات به کار روند.
متاسفانه کتابخانه Pandas ابزاری برای ثبت اطلاعات به قالب sav ندارد. در این بین بهتر است از کتابخانه pyreadstat استفاده شود.
فراخوانی فایل SPSS در Pyreadstat
به منظور نصب و راهاندازی کتابخانه Pyreadstat دو روش وجود دارد.
- نصب از طریق pip: پنجره خط فرمان یا ترمینال پایتون را باز کنید و دستور pip install pyreadstat را اجرا کنید.
- با استفاده از Conda: پنجره خط فرمان یا ترمینال پایتون را باز کنید و دستور conda install -c conda-forge pyreadstat را اجرا کنید.
به این ترتیب کتابخانه pyreadstat نصب خواهد شد. به منظور راهاندازی این کتابخانه و استفاده از توابع آن نیز باید دستور زیر را در پایتون صادر کنید.
1import pyreadstat
حال با استفاده از دستور زیر میتوانید اطلاعات این فایل را در متغیر df ثبت کنیم.
1df= pyreadstat.read_sav('./SimData/survey_1.sav')
این نکته جالب است که نوع متغیر df همان چارچوب داده Pandas خواهد بود. به کمک دستور type این موضوع را مورد بررسی قرار میدهیم.
1type(df)
نتیجه اجرای این دستور pandas.core.frame.DataFrame است. بنابراین روشها و توابع موجود در کتابخانه pandas برای آن قابل به کارگیری است. برای مثال:
1df.head()
چند سطر اول مجموعه داده را نمایش خواهد داد.
نکته: میدانیم که اندیس در پایتون با صفر شروع میشود در نتیجه اولین مشاهده با اندیس ۰ مشخص شده است.
ذخیرهسازی فایل اطلاعاتی با قالب sav در پایتون
برای ثبت چارچوب اطلاعاتی حاصل از عملیات پایتون در فایلی با قالب sav که بتوان در SPSS از آن استفاده کرد باز هم از کتابخانه pyreadstat کمک میگیریم. کافی است که روش write_sav را به کار برید. دستور زیر چارچوب داده df را با قالب sav در فایلی به نام survey_1_copy.sav ذخیره میکند.
1pyreadstat.write_sav(df, './SimData/survey_1_copy.sav')
توجه داشته باشید که مسیر ذکر شده در این دستور وجود داشته باشد در غیر اینصورت با پیغام خطا مواجه خواهید شد. به این ترتیب میتوانید survey_1_copy.sav را در SPSS فراخوانی کرده و محاسبات آماری دلخواه خود را با استفاده از فهرست دستورات مناسب در SPSS اجرا کنید.
اگر علاقهمند به یادگیری مباحث بیشتر در مورد SPSS و پایتون هستید، آموزشهای زیر به شما پیشنهاد میشوند:
- مجموعه آموزشهای آمار و احتمالات
- آموزش برنامه نویسی پایتون – مقدماتی
- مجموعه آموزشهای برنامهنویسی پایتون
- آموزش آماده سازی داده ها برای تحلیل آماری در SPSS
- افزونه های پایتون در SPSS – راهنمای کاربردی
- امکانات جدید SPSS نسخه 2۵ که باید آنها را بدانید
^^