ডেটা অ্যানালিসিসে কখনো কখনো স্ট্রিংকে সংখ্যা (int/float)-এ রূপান্তর করার প্রয়োজন হয়। প্রতিটি স্ট্রিং-এর জন্য একটি অনন্য ইন্টিজার মান নির্ধারণ করে স্ট্রিং মানগুলোকে আলাদা করা যায়।
এজন্য আমরা Comma Separated Values (CSV) ফাইলের ডেটা ব্যবহার করি। ধরুন আমাদের কাছে একটি এক্সেল ফাইল আছে যাতে নিচের CSV ডেটা রয়েছে:
| Company | Industry | Recommendation |
|---|---|---|
| HDFC Bank | Finance | Hold |
| Apollo | Healthcare | Buy |
| Hero | Automobile | Underperform |
| Yes Bank | Finance | Hold |
| M&M | Automobile | Underperform |
| Fortis | Healthcare | Buy |
| Maruti | Automobile | Underperform |
উপরোক্ত হলো একটি বড় ডেটাসেটের মাত্র কয়েক লাইন। আমাদের বিভিন্ন রিকমেন্ডেশন (Buy, Hold, Underperform ইত্যাদি)কে ইন্টিজার মান দিতে হবে, যা আমাদের মেটাডেটার সাথে লিঙ্ক থাকবে। তাই উপরের ইনপুটের জন্য আমাদের প্রত্যাশিত আউটপুট হবে এমন কিছু:
| Company | Industry | Recommendation |
|---|---|---|
| HDFC Bank | Finance | 2 |
| Apollo | Healthcare | 1 |
| Hero | Automobile | 3 |
| Yes Bank | Finance | 2 |
| M&M | Automobile | 3 |
| Fortis | Healthcare | 1 |
| Maruti | Automobile | 3 |
এখানে আমাদের স্ট্রিং (কলাম মান)কে ইন্টিজারে রূপান্তর করার একটি উপায় দেওয়া হলো:
কোড ১
# প্রয়োজনীয় লাইব্রেরি ইমপোর্ট
import pandas as pd
# pandas-এর read_csv() ব্যবহার করে CSV ফাইল ইমপোর্ট
dataframe = pd.read_csv("data_pandas1.csv")
# কী-ভ্যালু পেয়ারের ডিকশনারি তৈরি করুন, যেখানে কী হলো আপনার পুরনো মান (স্ট্রিং)
# এবং ভ্যালু হলো নতুন মান (ইন্টিজার)
Recommendation = {'Buy': 1, 'Hold': 2, 'Underperform': 3}
# উপরের ডিকশনারি থেকে বিভিন্ন কী-ভ্যালু পেয়ার আপনার টেবিলে অ্যাসাইন করুন
dataframe.Recommendation = [Recommendation[item] for item in dataframe.Recommendation]
# নতুন টেবিল প্রিন্ট করুন
print(dataframe)
ফলাফল
Company Industry Recommendation 0 HDFC Bank Finance 2 1 Apollo Healthcare 1 2 Hero Automobile 3 3 Yes Bank Finance 2 4 M&M Automobile 3 5 Fortis Healthcare 1 6 Maruti Automobile 3
উপরের কোড লেখার আরেকটি উপায় আছে, যেখানে আমরা ডিকশনারি না ব্যবহার করে সরাসরি কলাম ফিল্ড (Recommendation) কে অন্য মান অ্যাসাইন করি যদি কন্ডিশন মেলে।
import pandas as pd
# CSV ফাইল ইমপোর্ট
dataf = pd.read_csv("data_pandas1.csv")
# সরাসরি Recommendation কলামের পৃথক ফিল্ডকে আলাদা ইন্টিজার মান দিন যদি কন্ডিশন মেলে
# অর্থাৎ, ডেটাফ্রেমে Recommendation কলামে "Buy" থাকলে সেটাকে ইন্টিজার ১ অ্যাসাইন করুন
dataf.Recommendation[dataf.Recommendation == 'Buy'] = 1
dataf.Recommendation[dataf.Recommendation == 'Hold'] = 2
dataf.Recommendation[dataf.Recommendation == 'Underperform'] = 3
print(dataf)
ফলাফল
Company Industry Recommendation 0 HDFC Bank Finance 2 1 Apollo Healthcare 1 2 Hero Automobile 3 3 Yes Bank Finance 2 4 M&M Automobile 3 5 Fortis Healthcare 1 6 Maruti Automobile 3
উপরে আমি আপনার টেবিল (CSV ফরম্যাট ফাইল) এর স্ট্রিং ডেটাকে ইন্টিজার মানে রূপান্তর করার কয়েকটি উপায় মাত্র উল্লেখ করেছি। ডেটা ফিল্ডকে স্ট্রিং থেকে ইন্টিজারে পরিবর্তন করার অন্য অনেক পরিস্থিতি আপনার সামনে আসতে পারে।