কম্পিউটার টিউটোরিয়াল

পাইথনে ডেটা অ্যানালিসিসের জন্য স্ট্রিংকে সংখ্যায় রূপান্তর


ডেটা অ্যানালিসিসে কখনো কখনো স্ট্রিংকে সংখ্যা (int/float)-এ রূপান্তর করার প্রয়োজন হয়। প্রতিটি স্ট্রিং-এর জন্য একটি অনন্য ইন্টিজার মান নির্ধারণ করে স্ট্রিং মানগুলোকে আলাদা করা যায়।

এজন্য আমরা Comma Separated Values (CSV) ফাইলের ডেটা ব্যবহার করি। ধরুন আমাদের কাছে একটি এক্সেল ফাইল আছে যাতে নিচের CSV ডেটা রয়েছে:

Company Industry Recommendation
HDFC BankFinanceHold
ApolloHealthcareBuy
HeroAutomobileUnderperform
Yes BankFinanceHold
M&MAutomobileUnderperform
FortisHealthcareBuy
MarutiAutomobileUnderperform

উপরোক্ত হলো একটি বড় ডেটাসেটের মাত্র কয়েক লাইন। আমাদের বিভিন্ন রিকমেন্ডেশন (Buy, Hold, Underperform ইত্যাদি)কে ইন্টিজার মান দিতে হবে, যা আমাদের মেটাডেটার সাথে লিঙ্ক থাকবে। তাই উপরের ইনপুটের জন্য আমাদের প্রত্যাশিত আউটপুট হবে এমন কিছু:

Company Industry Recommendation
HDFC BankFinance2
ApolloHealthcare1
HeroAutomobile3
Yes BankFinance2
M&MAutomobile3
FortisHealthcare1
MarutiAutomobile3

এখানে আমাদের স্ট্রিং (কলাম মান)কে ইন্টিজারে রূপান্তর করার একটি উপায় দেওয়া হলো:

কোড ১

# প্রয়োজনীয় লাইব্রেরি ইমপোর্ট
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 ফরম্যাট ফাইল) এর স্ট্রিং ডেটাকে ইন্টিজার মানে রূপান্তর করার কয়েকটি উপায় মাত্র উল্লেখ করেছি। ডেটা ফিল্ডকে স্ট্রিং থেকে ইন্টিজারে পরিবর্তন করার অন্য অনেক পরিস্থিতি আপনার সামনে আসতে পারে।


  1. পাইথনে ফিবোনাচ্চি সংখ্যা প্রোগ্রাম

  2. পাইথনে ডেটা অ্যানালিসিস ও ভিজুয়ালাইজেশন (Python Data Analysis and Visualization)

  3. পাইথনে ডেটা অ্যানালাইসিস ও ভিজ্যুয়ালাইজেশন (pandas, matplotlib)

  4. পাইথনে এক্সপ্লোরেটরি ডেটা অ্যানালিসিস (Exploratory Data Analysis)