Missing values (অন্তর্নিহিত মান) এবং duplicates (অনুলিপি) ডেটা বিশ্লেষণের একটি সাধারণ সমস্যা, যা ডেটা প্রক্রিয়াকরণের সময় মোকাবিলা করতে হয়। Python-এর Pandas লাইব্রেরি ব্যবহার করে এই সমস্যা সমাধান করা সহজ। এখানে, আমরা আলোচনা করবো কীভাবে Pandas ব্যবহার করে Missing Values এবং Duplicates handle করা যায়।
১. Missing Values (অন্তর্নিহিত মান) Handle করা
ডেটাসেটে মিসিং মান বা NaN (Not a Number) মান হতে পারে, যা অনেক কারণে ঘটে যেমন ডেটা সংগ্রহের সময় কিছু মান অনুপস্থিত ছিল। Pandas এ Missing Values handle করার কিছু জনপ্রিয় পদ্ধতি হল:
১.১ Missing Values চেক করা
ডেটাসেটে কতগুলো মিসিং মান আছে তা চেক করতে Pandas এর isnull() বা isna() ফাংশন ব্যবহার করা হয়।
উদাহরণ:
import pandas as pd
# ডেটাসেট তৈরি
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [24, None, 22, 23],
'City': ['New York', None, 'Los Angeles', 'Chicago']}
df = pd.DataFrame(data)
# মিসিং ভ্যালু চেক
print(df.isnull()) # True মানে মিসিং
১.২ Missing Values এর সংখ্যা দেখতে
মিসিং মানের সংখ্যা দেখতে sum() ফাংশন ব্যবহার করা হয়।
উদাহরণ:
print(df.isnull().sum()) # প্রতিটি কলামে মিসিং ভ্যালুর সংখ্যা
১.৩ Missing Values পূর্ণ করা (Fill Missing Values)
মিসিং মান পূর্ণ করার জন্য বিভিন্ন পদ্ধতি আছে:
- সাধারণ মান দ্বারা পূর্ণ করা: আপনি একটি নির্দিষ্ট মান দিয়ে মিসিং ভ্যালু পূর্ণ করতে পারেন, যেমন
0,mean,medianইত্যাদি। - ফরওয়ার্ড বা ব্যাকওয়ার্ড পূর্ণ করা: পূর্ববর্তী বা পরবর্তী মান দিয়ে পূর্ণ করা।
উদাহরণ:
# mean দিয়ে মিসিং মান পূর্ণ করা
df['Age'] = df['Age'].fillna(df['Age'].mean())
print(df)
# পূর্ববর্তী মান দিয়ে পূর্ণ করা
df['City'] = df['City'].fillna(method='ffill')
print(df)
১.৪ Missing Values অপসারণ (Drop Missing Values)
কখনো কখনো আপনি মিসিং ভ্যালু সহ সারি বা কলাম বাদ দিতে পারেন। এটি করতে dropna() ফাংশন ব্যবহার হয়।
উদাহরণ:
# মিসিং ভ্যালু সহ সারি বাদ দেওয়া
df_dropped = df.dropna()
print(df_dropped)
১.৫ কাস্টম পূর্ণকরণ
আপনি কাস্টম ফাংশন ব্যবহার করে মিসিং ভ্যালু পূর্ণ করতে পারেন।
উদাহরণ:
# "Age" কলামে মিসিং ভ্যালু গুলি 'Unknown' দ্বারা পূর্ণ করা
df['City'] = df['City'].fillna('Unknown')
print(df)
২. Duplicates Handle করা
ডেটাসেটে অনুলিপি (duplicates) থাকতে পারে, যা প্রক্রিয়াকরণের সময় পরিহার করতে হয়। Pandas-এ duplicates সনাক্ত এবং অপসারণ করা সহজ।
২.১ Duplicates চেক করা
ডেটাসেটে অনুলিপি সনাক্ত করতে duplicated() ফাংশন ব্যবহার করা হয়। এটি True বা False রিটার্ন করবে, যেখানে True মানে একটি অনুলিপি সারি।
উদাহরণ:
# ডেটাসেটে অনুলিপি সারি চেক করা
print(df.duplicated())
২.২ Duplicates অপসারণ করা
অনুলিপি অপসারণের জন্য drop_duplicates() ফাংশন ব্যবহার করা হয়। এটি ডেটাসেটের সব অনুলিপি সারি মুছে ফেলবে।
উদাহরণ:
# অনুলিপি অপসারণ
df_no_duplicates = df.drop_duplicates()
print(df_no_duplicates)
২.৩ নির্দিষ্ট কলামের ভিত্তিতে Duplicates অপসারণ
আপনি নির্দিষ্ট একটি কলামের ভিত্তিতে অনুলিপি অপসারণ করতে পারেন।
উদাহরণ:
# নির্দিষ্ট কলামের ভিত্তিতে অনুলিপি অপসারণ
df_no_duplicates = df.drop_duplicates(subset=['Name'])
print(df_no_duplicates)
২.৪ Duplicates রাখার সময় প্রথম বা শেষটি রাখুন
আপনি যখন ডুপ্লিকেট অপসারণ করবেন, তখন প্রথম বা শেষ সারিটি রাখতে পারেন। এর জন্য keep প্যারামিটার ব্যবহার করতে হয়।
keep='first': প্রথম সারিটি রাখবে, বাকি গুলো মুছে ফেলবে।keep='last': শেষ সারিটি রাখবে, বাকি গুলো মুছে ফেলবে।keep=False: সব অনুলিপি মুছে ফেলবে।
উদাহরণ:
# প্রথম সারিটি রাখুন
df_no_duplicates = df.drop_duplicates(keep='first')
print(df_no_duplicates)
# সব অনুলিপি মুছে ফেলুন
df_no_duplicates = df.drop_duplicates(keep=False)
print(df_no_duplicates)
সারাংশ
- Missing Values বা অনুপস্থিত মান ডেটা বিশ্লেষণ প্রক্রিয়ায় একটি সাধারণ সমস্যা। এটি
fillna()বাdropna()এর মাধ্যমে পূর্ণ বা অপসারণ করা যেতে পারে। - Duplicates বা অনুলিপি ডেটাসেটে থাকা তথ্যগুলিকে চিহ্নিত এবং অপসারণ করার জন্য
duplicated()এবংdrop_duplicates()ফাংশন ব্যবহৃত হয়। - Python এর Pandas লাইব্রেরি ডেটা প্রক্রিয়াকরণ, বিশ্লেষণ এবং পরিষ্কার করার জন্য অত্যন্ত শক্তিশালী সরঞ্জাম সরবরাহ করে।
এভাবে, আপনি Missing Values এবং Duplicates সমস্যা খুব সহজেই Python দিয়ে সমাধান করতে পারবেন।
Read more