انجام عملیات تکراری با پایتون در SPSS – راهنمای گام به گام

۲۸۷ بازدید
آخرین به‌روزرسانی: ۹ خرداد ۱۴۰۲
زمان مطالعه: ۱۱ دقیقه
دانلود PDF مقاله
انجام عملیات تکراری با پایتون در SPSS  – راهنمای گام به گامانجام عملیات تکراری با پایتون در SPSS  – راهنمای گام به گام

یکی از زبان‌های پرطرفدار برای انجام محاسبات ریاضی در حوزه «علم داده» (Data Science) و «یادگیری ماشین» (Machine Learning)، پایتون است بطوری که در سال‌های اخیر شاهد رشد بسیار زیاد استفاده کنندگان و پروژه‌های نوشته شده با زبان پایتون هستیم. به همین دلیل شرکت IBM که صاحب نرم‌افزار SPSS‌ است، استفاده از این زبان برنامه‌نویسی را در این بسته محاسبات آماری گنجانده است. در این نوشتار به بررسی انجام عملیات تکراری با پایتون در SPSS می‌پردازیم. این متن قسمت دوم از دنباله مطالب مربوط به برنامه‌نویسی پایتون در SPSS‌ است. فهرست زیر این مطالب را معرفی کرده است.

997696

به عنوان پیش‌نیاز و برای آشنایی با محیط نرم‌افزار SPSS‌ و کار با آن بهتر است مطلب پنجره ویرایشگر داده (Data Editor) در SPSS — راهنمای کاربردی و امکانات جدید SPSS نسخه 2۵ که باید آن‌ها را بدانید را بخوانید. همچنین مطالعه قسمت اول از این مجموعه به نام پایتون در SPSS – راهنمای گام به گام و زبان برنامه نویسی پایتون (Python) — از صفر تا صد نیز خالی از لطف نیست. برای آشنایی بیشتر با نحوه برنامه‌نویسی به زبان پایتون بهتر است آموزش‌های ویدئو‌یی برنامه‌نویسی پایتون را نیز تهیه کنید.

انجام عملیات تکراری با پایتون در SPSS

در بسیاری از اوقات لازم است که کارهای تکراری در محیط SPSS انجام دهیم که شاید با استفاده از قابلیت Syntax امکان‌پذیر نباشند. در ادامه این متن، به بررسی حالتی در محیط SPSS می‌پردازیم که احتیاج به برنامه‌نویسی به زبان پایتون داریم. در ابتدا نحوه تغییرات روی رشته‌های متنی در خروجی‌های SPSS یعنی پنجره Output، بوسیله زبان برنامه‌نویسی پایتون را مورد بررسی قرار داده سپس نکاتی را متذکر می‌شویم که باید در زمان برنامه‌نویسی با این زبان رعایت کنیم.

کار با رشته‌های متنی پایتون در محیط SPSS

یکی از موضوعاتی که در محیط SPSS مورد توجه است، نحوه انجام عملیات روی رشته‌های متنی است. در این قسمت به بررسی نحوه عملکرد توابع پایتون روی رشته‌های متنی می‌پردازیم. ابتدا قواعد پایه برای انجام عملیات روی رشته‌های متنی در پایتون را مرور می‌کنیم.

  • رشته‌های متنی در پایتون باید داخل علامت نقل قول ('') یا ("") قرار گیرند.
  • اگر در رشته متنی لازم باشد که خود علامت نقل قول نیز ظاهر شود، باید به همراه علامت \ این کار صورت گیرد.
  • اگر رشته متنی قرار است در چند خط ظاهر شود، هر قطعه را داخل علامت نقل قول قرار داده و بینشان از علامت n\ استفاده می‌کنیم. همچنین می‌توانید از علامت """ به عنوان شروع و پایان عبارت متنی استفاده کرده و با علامت n\ خط بعدی را آغاز کنید.

hello python

در ادامه مثال‌هایی در این زمینه مورد بررسی قرار گرفته است.

خروجی اجرای این قطعه کدها به صورت زیر خواهد بود.

همانطور که در خروجی این برنامه‌ها مشاهده خواهید کرد، در قسمت اول، فقط به تولید رشته خالی اختصاص یافته و قطعه کد دوم یک عبارت را در دو خط ایجاد می‌کند. توجه داشته باشید که از کد n\ برای رفتن به خط بعدی در عبارت متنی استفاده شده است. در قطعه کد سوم نیز با استفاده از علامت '\ باعث شده‌ایم که علامت نقل قول در خروجی ظاهر شود. در جدول زیر بعضی از توابع مربوط به تغییرات در رشته‌های متنی آورده شده است.

شرحکدمثالنتیجه
استخراج رشته[ ]myString[0]رشته متنی
ادغام دو رشته متنی+ یا +=myString + myStringرشته متنی
استخراج محل یک متن از سمت چپ عبارت متنیfindmyString.find('a')مقدار عددی
استخراج محل یک متن از سمت راست عبارت متنیrfindmyString.rfind('a')مقدار عددی
جایگزنی یک عبارت در یک رشته متنیreplacemyString.replace('a','b')رشته متنی
تعیین طول رشته متنیlenlen(myString)مقدار عددی
تغییر رشته متنی به حروف کوچک لاتینlower‍myString.lower()رشته متنی
تغییر رشته متنی به حروف بزرگ لاتینuppermyString.upper()رشته متنی
تغییر رشته متنی به صورت حرف بزرگ در ابتدای جملهcapitalizemyString.capitalize()رشته متنی
حذف حروف از سمت چپ رشته متنیlstrip()myString.lstrip()رشته متنی
حذف حروف از سمت راست رشته متنیrstrip()myString.rstrip()رشته متنی
حذف حروف از سمت چپ و راست رشته متنیstrip()myString.strip()رشته متنی
تبدیل رشته متنی از اعداد به ساختار عددintint(myString)مقدار عددی
تبدیل رشته متنی به لیست پایتونsplitmyString.split(' ')لیست
بررسی آغاز یک عبارت با رشته متنی داده شدهstartswithmyString.startswith("var")منطقی
بررسی پایان یک عبارت با رشته متنی داده شدهstartswithmyString.startswith("var")منطقی
اضافه کردن صفر به سمت چپ یک عبارتzfillmyString.zfill(3)رشته متنی

در ادامه سعی می‌کنیم برای هر یک از این حالت‌ها مثال‌هایی بیاوریم.

 استخراج یک عبارت از رشته متنی در پایتون

همانطور که در جدول بالا اشاره شد، علامت [ ] وظیفه استخراج متن را به عهده دارد. در مثال‌های زیر از رشته متنی که درون متغیر myString وجود دارد، حروف یا عبارتی را خارج می‌کنیم. کدهای زیر به این منظور نوشته شده‌اند.

درون علامت [ ]، موقعیت یا اندیسی که باید حرف استخراج شود را مشخص می‌کنیم.

همانطور که مشاهده شد، دستور مربوط به خط دوم، رشته متنی abcdefghij را در متغیر myString قرار داده است. در خطوط بعدی به ترتیب اولین حرف (a)، از دومین حرف تا آخرین حرف (bcdefghij)، از حرف دوم تا حرف چهارم (bc) و در انتها نیز از سمت راست اولین حرف (j) استخراج شده‌اند.

نکته: توجه کنید که اندیس‌ها در پایتون از صفر آغاز شده و صفر به معنی اولین عنصر است.

خروجی به صورت زیر خواهد بود:

ادغام دو رشته متنی

با استفاده از علامت + می‌توانیم دو رشته متنی را به یکدیگر ادغام کنیم. البته همانطور که دیده شد، از علامت =+ نیز می‌توانید به منظور پیوند رشته قبلی با رشته جدید استفاده کنید. برای مثال اگر 'myString='Hello باشد، دستورات زیر معادل هستند و هر دو عبارت Hello A را ایجاد می کنند.

myString = myString + ' A'

myString += ' A'

به قطعه کد زیر توجه کنید.

خروجی این دستورات به صورت زیر خواهد بود.

همچنین با استفاده از کدهای زیر رشته‌های متنی را در پایتون با یکدیگر ادغام کرده‌ایم.

با اجرای این کدها، در پنجره خروجی SPSS عبارت‌های زیر ظاهر خواهد شد.

در قسمت دوم از برنامه مشخص است که با استفاده از یک حلقه تکرار، رشته‌هایی از اعداد ۰ تا ۴ را به رشته متنی abc اضافه کرده‌ایم.

تعیین محل قرارگیری یک عبارت از رشته متنی

فرض کنید در یک رشته متنی می‌خواهیم محل قرارگیری یک عبارت را مشخص کنیم. تابع find این کار را به خوبی انجام می‌دهد. ولی باید توجه داشته باشید که چند نکته مهم در استفاده از این تابع وجود دارد.

  • شروع جستجو از سمت چپ عبارت متنی آغاز می‌شود.
  • در زبان برنامه نویسی پایتون حروف بزرگ و کوچک لاتین با یکدیگر تفاوت دارند و هنگام جستجو باید حروف ذکر شده با توجه به این موضوع در نظر گرفته شوند.
  • در پایتون آغاز اندیس از صفر است در نتیجه در توابعی که با اندیس سر و کار دارند، توجه به این نکته ضروری است.

به متنی که در تصویر زیر نوشته شده،‌ توجه کنید. مشخص است که حرف اول در این رشته، در اندیس صفر قرار گرفته است.

python-indices-string-characters

با توجه به عبارت متنی مربوط به تصویر بالا، کدهای زیر به منظور استخراج محل حرف  c و عبارت in به کار رفته است.

همانطور که مشخص است خروجی این کد مقدار ۲ و ۴ خواهد بود.

نکته: اگر می‌خواهید همین عمل را از سمت راست انجام دهید بهتر است از تابع rfind استفاده کنید. کدی که در زیر مشاهده می‌کنید مرتبط با رشته متنی تصویر بالا و برای نمایش محل حرف i و عبارت in نوشته شده است.

در خروجی با اجرای این کد،‌ مقدار ۲۵ و ۲۱ ظاهر می‌شود. توجه دارید که محل قرارگیری حروف و عبارت‌ها از سمت چپ مشخص شده است ولی اولین محل جستجو از سمت راست برای حرف i و in تعیین شده است. در ادامه به صورت فهرست‌وار به کدهایی اشاره می‌کنیم که برخی از عملیات روی رشته‌های متنی را انجام می‌‌دهند.

جایگزینی حروف در یک عبارت

همانطور که مشخص است، این کد دو کار را انجام می‌دهد. جایگزینی حرف a درون یک رشته متنی با جای خالی (جایگزینی ۵ مورد) در نتیجه حذف حرف a و سپس جایگزینی همه عبارت‌های the با حرف a. نتیجه حاصل در خروجی به شکل زیر خواهد بود.

تعیین طول رشته متنی

مقدار نتیجه اجرای کد عدد ۵ است.

تبدیل حروف رشته متنی به حروف کوچک لاتین

نتیجه اجرا نمایش عبارت !spss is fun.

تبدیل رشته متنی به حروف بزرگ لاتین

نتیجه اجرا نمایش عبارت THIS IS SOME TITLE خواهد بود.

حذف حروف از سمت چپ یک رشته متنی

در پایتون تابع ()lstrip باعث حذف همه فاصله‌های خالی و علامت پرش در ابتدای یک عبارت متنی می‌شود. از آنجایی که در خروجی‌های SPSS ممکن است از این علامت‌ها برای تنظیم جانمایی عبارت‌های متنی استفاده شده باشد، بهره‌گیری از این تابع می‌تواند شما را به یک رشته متن خالص برساند.

اگر حرف خاصی را می‌خواهید حذف کنید کافی است که آن حروف یا علامت را در داخل پرانتز به عنوان پارامتر تابع lstrip‌ وارد کنید.

در قسمت اول (A)، فاصله‌های خالی اولیه در یک عبارت متنی حذف شده و در قسمت دوم کد (B) نیز علامت * از درون رشته متنی حذف می‌شود. البته خروجی در هر دو حالت برابر با left padding removed است.

حذف حروف از سمت راست یک رشته متنی

حذف حروف از راست و چپ یک رشته متنی

خروجی A:

left and right padding removed

خروجی B:

left and right padding removed

تبدیل رشته متنی از اعداد به ساختار عدد

خروجی اجرای این کد رشته عددی 123خواهد بود.

تبدیل رشته متنی به لیست پایتون

خروجی A:

<'type 'list>

['A', 'A', 'C', 'A', 'B', 'C']

خروجی B:

['A', 'A', 'C', 'A', 'B', 'C']

بررسی آغاز یک عبارت با رشته متنی داده شده

خروجی A:

True

False

خروجی B:

.'First character is 'a

نکته: خروجی این تابع یک مقدار منطقی است. بنابراین همانطور که دیده می‌شود، می‌توان از آن در تابع شرطی if استفاده کرد.

بررسی پایان یک عبارت با رشته متنی داده شده

خروجی:

True

False

اضافه کردن صفر به سمت چپ یک عبارت

در پایتون، تابع (3)zfill از سمت چپ به تعداد لازم صفر به یک رشته متنی اضافه می‌کند تا طول رشته، سه حرف شود.

خروجی:

001

010

پنج نکته مهم در کد نویسی پایتون

برنامه‌نویسی به زبان پایتون شامل مقرراتی است که شاید در زبان‌های برنامه نویسی دیگر وجود نداشته باشند. در این قسمت به معرفی این مقررات خواهیم پرداخت.

۱- استفاده از حروف بزرگ و کوچک لاتین

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

پیغام خطای SPSS به صورت زیر است.

spss-python-import-error

2- رعایت فرورفتگی در کدها

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

در قطعه کدی که در ادامه مشاهده می‌کنید، در قسمت اول با توجه به فرورفتگی‌ها عبارت hello  و bye پنج بار تکرار شده ولی در قطعه کد دوم bye فقط یکبار ظاهر خواهد شد.

3- یادداشت گذاری در کد

برای ثبت یادداشت در کدهای پایتونی که در محیط Syntax نوشته می‌شوند از علامت # استفاده کنید. در تصویر زیر این نحوه استفاده به خوبی دیده می‌شود.

spss-python-comments

4- چاپ نتایج در خروجی

در پایتون با توجه به نوع متغیر یا نتیجه‌ای که باید در خروجی ظاهر شود، بهتر است مقدار و نوع متغیری که قرار است در خروجی قرار گیرد را بوسیله دستور print ظاهر کنید. کدی که در زیر می‌بینید، بیانگر این عمل است.

5- استفاده صحیح از علامت \

علامت \ در پایتون معنی خاصی دارد. همانطور که دیدید n\ به معنی چاپ عبارت متنی در خط بعدی است، در نتیجه اگر این کد در پنجره Syntax اجرا شود با خطا مواجه خواهیم شد.

somepath = 'c:\newdata\data.sav'

در حالیکه اگر بخواهیم از قالب خالص متنی در این حالت استفاده کنیم بهتر است دستور زیر را به کار ببریم. حرف r به معنی RAW یا رشته متنی خام بوده و بدون در نظر گرفتن کدهای Escape عبارت به صورت متن خالص در نظر گرفته می‌شود.

somepath = r'c:\newdata\data.sav'

کدی که در ادامه مشاهده می‌کنید به منظور نمایش نحوه استفاده از علامت \ نوشته شده است.

خلاصه و جمع‌بندی

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

اگر علاقه‌مند به یادگیری مباحث بیشتر در مورد SPSS و پایتون هستید، آموزش‌های زیر به شما پیشنهاد می‌شوند:

^^

بر اساس رای ۰ نفر
آیا این مطلب برای شما مفید بود؟
اگر بازخوردی درباره این مطلب دارید یا پرسشی دارید که بدون پاسخ مانده است، آن را از طریق بخش نظرات مطرح کنید.
دانلود PDF مقاله
نظر شما چیست؟

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *