Pandas হল Python-এর একটি অত্যন্ত জনপ্রিয় এবং শক্তিশালী লাইব্রেরি যা ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণের জন্য ব্যবহৃত হয়। এটি DataFrame এবং Series নামক দুটি মূল ডেটা স্ট্রাকচার সরবরাহ করে, যা টেবিল আকারে ডেটা ম্যানিপুলেশন এবং বিশ্লেষণ করা খুব সহজ করে তোলে।
Pandas দিয়ে আপনি সহজেই ডেটা লোড করতে, প্রক্রিয়া করতে, ম্যানিপুলেট করতে এবং বিশ্লেষণ করতে পারবেন। এটি স্ট্যাটিস্টিক্যাল অ্যানালাইসিস, ডেটা ক্লিনিং, ডেটা ফিল্টারিং, এবং গ্রাফিকাল ভিজ্যুয়ালাইজেশন সহ অনেক কার্যক্রম সহজভাবে সম্পাদন করতে সহায়ক।
এখানে Pandas দিয়ে ডেটা ম্যানিপুলেশন-এর কিছু সাধারণ কাজের ব্যাখ্যা দেওয়া হলো:
Pandas-এর DataFrame একটি দুই-মাত্রিক, ট্যাবুলার ডেটা স্ট্রাকচার। এটি সঠিকভাবে সিরিজ এবং কলামের সাহায্যে ডেটা পরিচালনা করতে সহায়ক।
import pandas as pd
# ডেটা সেট তৈরি
data = {'Name': ['Alice', 'Bob', 'Charlie'], 'Age': [24, 27, 22], 'City': ['New York', 'Los Angeles', 'Chicago']}
df = pd.DataFrame(data)
# DataFrame প্রদর্শন
print(df)
এখানে Name
, Age
, এবং City
কলামসহ একটি ডেটা ফ্রেম তৈরি করা হয়েছে।
Pandas ব্যবহার করে আপনি CSV, Excel, এবং অন্যান্য ফাইল ফরম্যাট থেকে ডেটা লোড করতে পারেন।
# CSV ফাইল থেকে ডেটা লোড করা
df = pd.read_csv('data.csv')
# প্রথম ৫টি সারি দেখানো
print(df.head())
এখানে data.csv
ফাইল থেকে ডেটা লোড করে DataFrame তৈরি করা হচ্ছে এবং head()
ফাংশনটি প্রথম ৫টি সারি প্রদর্শন করবে।
Pandas-এ আপনি নির্দিষ্ট কলাম বা সারি নির্বাচন করতে পারেন।
# 'Name' কলাম নির্বাচন
names = df['Name']
print(names)
# ইন্ডেক্স 1 এর সারি নির্বাচন (যেটি Bob এর তথ্য)
row = df.iloc[1]
print(row)
এখানে, .iloc[]
ইন্ডেক্সের মাধ্যমে সারি নির্বাচন করে।
Pandas-এ ডেটা ফিল্টারিং অনেক সহজ। আপনি কিছু শর্ত পূর্ণ হলে ডেটা নির্বাচন করতে পারেন।
# Age কলামের মান 25 এর বেশি হলে ফিল্টার করা
filtered_df = df[df['Age'] > 25]
print(filtered_df)
এখানে, Age
কলামের মান ২৫ এর বেশি হলে সেগুলি ফিল্টার করা হয়েছে।
Pandas-এ নতুন কলাম যোগ করা অত্যন্ত সহজ। আপনি সরাসরি DataFrame-এ নতুন কলাম সংযোজন করতে পারেন।
# নতুন কলাম 'Age in Months' যোগ করা
df['Age in Months'] = df['Age'] * 12
print(df)
এখানে, Age
কলামের মানকে ১২ দিয়ে গুণ করে নতুন কলাম তৈরি করা হয়েছে।
Pandas-এ GroupBy ফিচার ব্যবহার করে আপনি ডেটাকে গ্রুপ করে বিভিন্ন অপারেশন করতে পারেন।
# 'City' কলামের ভিত্তিতে গ্রুপিং এবং প্রতিটি শহরের জন্য গড় বয়স বের করা
grouped = df.groupby('City')['Age'].mean()
print(grouped)
এখানে, City
কলামের ভিত্তিতে গ্রুপ করে প্রতিটি শহরের গড় বয়স বের করা হয়েছে।
গ্রুপবাইয়ের পর আপনি বিভিন্ন অ্যাগ্রিগেট ফাংশন যেমন sum()
, mean()
, count()
ইত্যাদি ব্যবহার করতে পারেন।
# 'City' ভিত্তিক গ্রুপিং এবং বয়সের সর্বোচ্চ মান বের করা
aggregated_data = df.groupby('City')['Age'].max()
print(aggregated_data)
এখানে, City
কলামের ভিত্তিতে গ্রুপিং করে প্রতিটি শহরের বয়সের সর্বোচ্চ মান বের করা হয়েছে।
Pandas-এ আপনি দুইটি বা বেশি DataFrame একত্রিত করতে পারেন merge() ফাংশনের মাধ্যমে।
# দুটি DataFrame তৈরি
df1 = pd.DataFrame({'ID': [1, 2, 3], 'Name': ['Alice', 'Bob', 'Charlie']})
df2 = pd.DataFrame({'ID': [1, 2, 4], 'Age': [24, 27, 22]})
# DataFrame গুলি মার্জ করা (ID এর উপর)
merged_df = pd.merge(df1, df2, on='ID')
print(merged_df)
এখানে, ID
কলামের ভিত্তিতে দুটি DataFrame মার্জ করা হয়েছে।
Pandas DataFrame-এ ডেটা সজ্জা করতে sort_values() ফাংশন ব্যবহার করা হয়।
# 'Age' কলাম অনুযায়ী সজ্জা (ascending=True অর্থে কম থেকে বেশি)
sorted_df = df.sort_values(by='Age', ascending=True)
print(sorted_df)
এখানে, Age
কলামের মান অনুযায়ী ডেটা কম থেকে বেশি সজ্জিত করা হয়েছে।
Pandas-এ মিসিং ভ্যালু (missing values) পূর্ণ করতে বা ডিলিট করতে সহজ উপায় রয়েছে।
# মিসিং ভ্যালু চেক করা
missing_data = df.isnull().sum()
print(missing_data)
# মিসিং ভ্যালু পূর্ণ করা (যেমন 'Age' কলামের জন্য গড় মান দিয়ে পূর্ণ করা)
df['Age'] = df['Age'].fillna(df['Age'].mean())
এখানে, Age
কলামের মিসিং ভ্যালু গড় মান দিয়ে পূর্ণ করা হয়েছে।
Pandas হল ডেটা ম্যানিপুলেশন এবং বিশ্লেষণের জন্য একটি অত্যন্ত শক্তিশালী টুল। এটি ডেটা লোডিং, ফিল্টারিং, গ্রুপিং, মর্জিং, সজ্জা, এবং ক্লিনিংসহ নানা কার্যক্রমের জন্য সাহায্য করে। ডেটা ফ্রেম এবং সিরিজের সাহায্যে Pandas-এ ডেটার বিভিন্ন দিক পরীক্ষা করা, বিশ্লেষণ করা এবং প্রয়োজনীয় তথ্য বের করা সহজ হয়ে যায়।
Pandas হল Python-এর একটি অত্যন্ত জনপ্রিয় এবং শক্তিশালী লাইব্রেরি, যা ডেটা ম্যানিপুলেশন এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। এটি মূলত DataFrame এবং Series নামক ডেটা স্ট্রাকচার ব্যবহার করে ডেটাকে প্রক্রিয়া এবং বিশ্লেষণ করার জন্য তৈরি হয়েছে। Pandas ডেটা বিশ্লেষণকে সহজ এবং দ্রুত করে তোলে, এবং এটি ডেটাবেস, CSV, Excel, SQL এবং অন্যান্য ফাইল ফরম্যাট থেকে ডেটা আমদানি এবং রপ্তানি করার জন্য শক্তিশালী টুলস প্রদান করে।
Pandas ইনস্টল করার জন্য pip প্যাকেজ ম্যানেজার ব্যবহার করা হয়। নীচে Pandas ইনস্টল করার ধাপগুলি দেওয়া হল:
Pandas ইনস্টল করার জন্য আপনার সিস্টেমে Python এবং pip ইনস্টল থাকতে হবে। যদি pip ইনস্টল না থাকে, আপনি উপরের নির্দেশনা অনুযায়ী pip ইনস্টল করতে পারেন।
Windows, MacOS, এবং Linux এ Pandas ইনস্টল করতে:
pip install pandas
Pandas ইনস্টলেশনের পর আপনি এটি সঠিকভাবে ইনস্টল হয়েছে কিনা তা যাচাই করতে পারেন। Python ইন্টারপ্রেটারে (বা আপনার IDE/কোড এডিটরে) নিচের কোডটি চালিয়ে দেখুন:
import pandas as pd
print(pd.__version__) # এটি Pandas এর ইনস্টল সংস্করণ প্রদর্শন করবে
Pandas ইনস্টল করার সময় আপনি যদি আপনার প্রকল্পের জন্য একটি ভিন্ন পরিবেশ (environment) ব্যবহার করতে চান, তাহলে virtual environment তৈরি করতে পারেন।
Virtual Environment তৈরি:
python -m venv myenv
এখানে myenv
হলো আপনার virtual environment এর নাম। আপনি অন্য কোন নামও ব্যবহার করতে পারেন।
Windows:
myenv\Scripts\activate
MacOS/Linux:
source myenv/bin/activate
Virtual Environment-এ Pandas ইনস্টল করা:
pip install pandas
Pandas ইনস্টল করার পর, আপনি এটি দিয়ে ডেটা প্রক্রিয়াকরণ শুরু করতে পারেন। এখানে একটি উদাহরণ:
import pandas as pd
# ডেটা লোড করা (এখানে একটি সিম্পল ডেটাসেট ব্যবহার করা হয়েছে)
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [24, 27, 22],
'City': ['New York', 'San Francisco', 'Chicago']}
# DataFrame তৈরি
df = pd.DataFrame(data)
# DataFrame প্রদর্শন
print(df)
আউটপুট হবে:
Name Age City
0 Alice 24 New York
1 Bob 27 San Francisco
2 Charlie 22 Chicago
এইভাবে, Pandas দিয়ে ডেটা প্রক্রিয়াকরণ এবং বিশ্লেষণ করা সহজ হয়, এবং এটি Python-এ ডেটা সায়েন্স এবং বিশ্লেষণের জন্য একটি অত্যন্ত কার্যকর টুল।
Pandas হল Python-এর একটি শক্তিশালী লাইব্রেরি যা ডেটা ম্যানিপুলেশন এবং বিশ্লেষণের জন্য ব্যবহৃত হয়। এটি DataFrame এবং Series স্ট্রাকচার ব্যবহার করে ডেটাকে সহজে প্রক্রিয়া এবং বিশ্লেষণ করতে সহায়ক। Pandas ইনস্টল করা খুবই সহজ, এবং এটি pip
প্যাকেজ ম্যানেজার দিয়ে ইনস্টল করা যায়। এর মাধ্যমে আপনি ডেটা বিশ্লেষণ, টাইম সিরিজ ডেটা বিশ্লেষণ, গ্রুপিং, ডেটা ক্লিনিং এবং আরও অনেক কিছু করতে পারবেন।
Python-এর Pandas লাইব্রেরি ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণের জন্য দুটি প্রধান ডেটা স্ট্রাকচার সরবরাহ করে: DataFrame এবং Series। এগুলির সাহায্যে আপনি সহজে টেবিল আকারে ডেটা পরিচালনা করতে পারেন, যেমন কলাম এবং সারি নিয়ে কাজ করা। এদের মধ্যে পার্থক্য এবং ব্যবহার বুঝতে হলে প্রথমে এদের মৌলিক ধারণা জানা দরকার।
Series হল Pandas এর একটি মৌলিক ডেটা স্ট্রাকচার, যা একমাত্র একটি ভেক্টরের মতো কাজ করে, এবং এটি একটি একমাত্র কলামের ডেটার প্রতিনিধিত্ব করে। Series একটি একমাত্রিক (1D) আ্যারে যা লেবেলযুক্ত ডেটা ধারণ করে।
import pandas as pd
# একটি সিম্পল Series তৈরি করা
data = [10, 20, 30, 40, 50]
series = pd.Series(data)
# সিরিজটি দেখানো
print(series)
আউটপুট:
0 10
1 20
2 30
3 40
4 50
dtype: int64
এখানে, সিরিজটি একটি একমাত্র ডেটা কলাম ধারণ করে, এবং প্রতিটি উপাদানের একটি ইন্ডেক্স (0, 1, 2, 3, 4) থাকে।
Series তৈরি করতে ইন্ডেক্স প্রদান করা সম্ভব:
series_with_index = pd.Series(data, index=["a", "b", "c", "d", "e"])
print(series_with_index)
আউটপুট:
a 10
b 20
c 30
d 40
e 50
dtype: int64
এখানে, প্রতিটি ডেটা উপাদান একটি নির্দিষ্ট ইন্ডেক্স (a, b, c, d, e) দ্বারা চিহ্নিত।
DataFrame হল একটি দ্বিমাত্রিক (2D) টেবিল ডেটা স্ট্রাকচার, যা কলাম এবং সারি নিয়ে গঠিত। এটি এক বা একাধিক Series এর সমষ্টি, এবং প্রতিটি Series একটি নির্দিষ্ট কলাম প্রতিনিধিত্ব করে।
import pandas as pd
# ডেটার একটি dictionary তৈরি করা
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eva'],
'Age': [24, 27, 22, 32, 29],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
# DataFrame তৈরি করা
df = pd.DataFrame(data)
# DataFrame প্রদর্শন
print(df)
আউটপুট:
Name Age City
0 Alice 24 New York
1 Bob 27 Los Angeles
2 Charlie 22 Chicago
3 David 32 Houston
4 Eva 29 Phoenix
এখানে, DataFrame তে তিনটি কলাম (Name, Age, City) এবং পাঁচটি সারি রয়েছে। প্রতিটি কলামের একটি নাম (যেমন, "Name", "Age", "City") এবং প্রতিটি সারির একটি ইন্ডেক্স (0, 1, 2, 3, 4) রয়েছে।
DataFrame এ কলামের নাম এবং সারির ইন্ডেক্স কাস্টমাইজ করা যেতে পারে:
df_custom_index = pd.DataFrame(data, index=['a', 'b', 'c', 'd', 'e'])
print(df_custom_index)
আউটপুট:
Name Age City
a Alice 24 New York
b Bob 27 Los Angeles
c Charlie 22 Chicago
d David 32 Houston
e Eva 29 Phoenix
এখানে, DataFrame-এর সারির ইন্ডেক্স পরিবর্তন করা হয়েছে (a, b, c, d, e)।
বৈশিষ্ট্য | Series | DataFrame |
---|---|---|
আয়তন | একমাত্রিক (1D) | দ্বিমাত্রিক (2D) |
ডেটা | একটি কলামের ডেটা | একাধিক কলামের ডেটা |
ইন্ডেক্স | একটি একক ইন্ডেক্স (প্রত্যেক উপাদানের জন্য) | একাধিক কলামের জন্য পৃথক পৃথক ইন্ডেক্স |
ডেটার ধরন | সংখ্যাত্মক, স্ট্রিং বা অন্যান্য ডেটা | একাধিক ধরন: সংখ্যাত্মক, স্ট্রিং, টাইমস্ট্যাম্প |
উদাহরণ | একটি কলামের ডেটা (যেমন, একক বৈশিষ্ট্যের তালিকা) | একাধিক বৈশিষ্ট্য, যেমন নাম, বয়স, শহর |
ব্যবহার | সাধারণত একক বৈশিষ্ট্য বিশ্লেষণ | টেবিল আকারে ডেটা বিশ্লেষণ এবং ব্যবস্থাপনা |
Pandas DataFrame এবং Series উভয়ই ডেটা বিশ্লেষণ ও প্রক্রিয়াকরণের জন্য অত্যন্ত গুরুত্বপূর্ণ, এবং এগুলির সাহায্যে আপনি সহজে ডেটা ম্যানিপুলেশন এবং বিশ্লেষণ করতে পারেন।
Pandas একটি জনপ্রিয় Python লাইব্রেরি যা DataFrame নামক একটি ডেটা স্ট্রাকচার ব্যবহার করে ডেটাকে টেবিল আকারে সংরক্ষণ এবং পরিচালনা করার জন্য। DataFrame থেকে ডেটা নির্বাচন (Data Selection) এবং ফিল্টারিং (Filtering) হল ডেটা বিশ্লেষণের গুরুত্বপূর্ণ অংশ, যা বিভিন্ন পরিস্থিতিতে প্রয়োজনীয় ডেটা বের করতে সহায়তা করে।
এখানে Pandas DataFrame থেকে ডেটা সিলেকশন এবং ফিল্টারিং সম্পর্কিত বিভিন্ন পদ্ধতি বিস্তারিতভাবে আলোচনা করা হল।
প্রথমে একটি সাধারণ DataFrame তৈরি করি:
import pandas as pd
# ডেটা সেট তৈরি
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
'Age': [24, 27, 22, 32, 29],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)
# DataFrame দেখানো
print(df)
আউটপুট:
Name Age City
0 Alice 24 New York
1 Bob 27 Los Angeles
2 Charlie 22 Chicago
3 David 32 Houston
4 Edward 29 Phoenix
DataFrame থেকে নির্দিষ্ট কলাম বা সারি নির্বাচন করার বিভিন্ন পদ্ধতি আছে।
# 'Name' কলাম নির্বাচন
name_column = df['Name']
print(name_column)
আউটপুট:
0 Alice
1 Bob
2 Charlie
3 David
4 Edward
Name: Name, dtype: object
# 'Name' এবং 'Age' কলাম নির্বাচন
selected_columns = df[['Name', 'Age']]
print(selected_columns)
আউটপুট:
Name Age
0 Alice 24
1 Bob 27
2 Charlie 22
3 David 32
4 Edward 29
# প্রথম সারি নির্বাচন
first_row = df.iloc[0]
print(first_row)
আউটপুট:
Name Alice
Age 24
City New York
Name: 0, dtype: object
# প্রথম তিনটি সারি নির্বাচন
first_three_rows = df.iloc[:3]
print(first_three_rows)
আউটপুট:
Name Age City
0 Alice 24 New York
1 Bob 27 Los Angeles
2 Charlie 22 Chicago
ডেটা ফিল্টারিং হল ডেটা সেটের মধ্যে নির্দিষ্ট শর্ত পূরণ করা সারি বা কলাম নির্বাচন করা।
# Age কলামের মান ২৫ এর বেশি এমন সারি নির্বাচন করা
filtered_data = df[df['Age'] > 25]
print(filtered_data)
আউটপুট:
Name Age City
1 Bob 27 Los Angeles
3 David 32 Houston
4 Edward 29 Phoenix
# Age > 25 এবং City = 'Houston' শর্তে ফিল্টার করা
filtered_data = df[(df['Age'] > 25) & (df['City'] == 'Houston')]
print(filtered_data)
আউটপুট:
Name Age City
3 David 32 Houston
# Age > 25 অথবা City = 'Chicago' শর্তে ফিল্টার করা
filtered_data = df[(df['Age'] > 25) | (df['City'] == 'Chicago')]
print(filtered_data)
আউটপুট:
Name Age City
1 Bob 27 Los Angeles
2 Charlie 22 Chicago
3 David 32 Houston
4 Edward 29 Phoenix
# 'City' কলামে 'Chicago' সম্বলিত সারি নির্বাচন করা
filtered_data = df[df['City'] == 'Chicago']
print(filtered_data)
আউটপুট:
Name Age City
2 Charlie 22 Chicago
DataFrame থেকে সারি নির্বাচনের জন্য loc[]
এবং iloc[]
পদ্ধতি ব্যবহার করা যায়।
loc[]
ব্যবহার করে ফিল্টারিং:loc[]
পদ্ধতিটি ট্যাগড ইনডেক্সের মাধ্যমে সারি নির্বাচন করে।
# 'Name' কলামে 'Charlie' এর ইনডেক্সের সারি নির্বাচন
row = df.loc[df['Name'] == 'Charlie']
print(row)
আউটপুট:
Name Age City
2 Charlie 22 Chicago
iloc[]
ব্যবহার করে ফিল্টারিং:iloc[]
পদ্ধতিটি পজিশনাল ইনডেক্স (integer-based indexing) এর মাধ্যমে সারি নির্বাচন করে।
# প্রথম দুইটি সারি নির্বাচন
rows = df.iloc[:2]
print(rows)
আউটপুট:
Name Age City
0 Alice 24 New York
1 Bob 27 Los Angeles
আপনি যদি নতুন কলাম যোগ করতে চান, তবে সহজেই এটি করতে পারেন।
# একটি নতুন কলাম 'Age in Months' যোগ করা
df['Age in Months'] = df['Age'] * 12
print(df)
আউটপুট:
Name Age City Age in Months
0 Alice 24 New York 288
1 Bob 27 Los Angeles 324
2 Charlie 22 Chicago 264
3 David 32 Houston 384
4 Edward 29 Phoenix 348
loc[]
এবং iloc[]
: ইনডেক্স বা পজিশনাল ইনডেক্স ব্যবহার করে সারি নির্বাচন করা।এই পদ্ধতিগুলি ব্যবহার করে আপনি Pandas DataFrame থেকে প্রয়োজনীয় ডেটা নির্বাচন এবং ফিল্টার করতে পারবেন, যা ডেটা বিশ্লেষণ এবং প্রক্রিয়াকরণের জন্য অত্যন্ত গুরুত্বপূর্ণ।
Python-এ missing data বা null values (যাকে NaN
- Not a Number বলা হয়) ডেটা সেটের একটি সাধারণ সমস্যা। Pandas লাইব্রেরি এই সমস্যা সমাধানের জন্য কার্যকরী মেথড সরবরাহ করে, যেমন fillna()
এবং dropna()
, যা ডেটাতে মিসিং বা NaN
মান পরিচালনা করতে সহায়ক। এই দুটি মেথডের সাহায্যে আপনি মিসিং ডেটা অলম্বন (fill) বা অপসারণ (drop) করতে পারেন।
fillna()
মেথডটি মিসিং ডেটাকে নির্দিষ্ট মান দিয়ে পূর্ণ করতে ব্যবহৃত হয়। এটি ডেটাতে যেকোনো NaN
বা মিসিং ভ্যালুকে সরাসরি নির্দিষ্ট কোনো মান দ্বারা প্রতিস্থাপন করে।
DataFrame.fillna(value=None, method=None, axis=None, inplace=False)
0
, mean
, median
, ইত্যাদি)।True
হয়, তাহলে পরিবর্তন DataFrame-এ সরাসরি করা হয়, নইলে নতুন DataFrame তৈরি হয়।import pandas as pd
import numpy as np
# DataFrame তৈরি
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, np.nan, 30, np.nan],
'Salary': [50000, 60000, np.nan, 80000]}
df = pd.DataFrame(data)
# মিসিং ডেটা পূর্ণ করা (Age কলামে NaN পূর্ণ করা)
df['Age'] = df['Age'].fillna(df['Age'].mean()) # Age এর গড় মান দিয়ে পূর্ণ
# Salary কলামে NaN পূর্ণ করা
df['Salary'] = df['Salary'].fillna(75000) # নির্দিষ্ট মান দিয়ে পূর্ণ
print(df)
Output:
Name Age Salary
0 Alice 25.0 50000
1 Bob 27.5 60000
2 Charlie 30.0 75000
3 David 27.5 80000
এখানে, Age
কলামের মিসিং ভ্যালু গড় মান দিয়ে পূর্ণ করা হয়েছে এবং Salary
কলামের মিসিং ভ্যালু একটি নির্দিষ্ট মান (75000) দিয়ে পূর্ণ করা হয়েছে।
# Forward fill ব্যবহার
df['Age'] = df['Age'].fillna(method='ffill')
dropna()
মেথডটি মিসিং বা NaN
ভ্যালু ধারণকারী সারি বা কলাম মুছে ফেলতে ব্যবহৃত হয়। এটি ব্যবহার করে আপনি যেকোনো সারি বা কলাম যা মিসিং ভ্যালু ধারণ করে তা সরিয়ে ফেলতে পারেন।
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
True
হয়, তাহলে পরিবর্তন সরাসরি DataFrame-এ করা হয়।# DataFrame তৈরি
data = {'Name': ['Alice', 'Bob', 'Charlie', 'David'],
'Age': [25, np.nan, 30, np.nan],
'Salary': [50000, 60000, np.nan, 80000]}
df = pd.DataFrame(data)
# মিসিং ডেটা সহ সারি বাদ দেয়া
df_cleaned = df.dropna(axis=0, how='any') # যে সারিতে NaN থাকবে তা বাদ দিবে
print(df_cleaned)
Output:
Name Age Salary
0 Alice 25.0 50000
এখানে, যেকোনো সারি যা মিসিং ডেটা ধারণ করে (যেমন, সারি 1 এবং সারি 3) তা বাদ দেওয়া হয়েছে।
# সমস্ত কলামে NaN থাকতে হলে কলাম বাদ দেয়া
df_cleaned = df.dropna(axis=1, how='all')
মেথড | বর্ণনা |
---|---|
fillna() | মিসিং ডেটাকে নির্দিষ্ট মান দিয়ে পূর্ণ করা। |
dropna() | মিসিং ডেটা সম্পূর্ণ সারি বা কলাম থেকে বাদ দেয়া। |
fillna()
মেথডটি মিসিং ডেটা পূর্ণ করতে ব্যবহৃত হয়, যা সাধারণত গড় (mean), গুণ (mode), বা নির্দিষ্ট মানের মাধ্যমে পূর্ণ করা হয়।dropna()
মেথডটি মিসিং ডেটা ধারণকারী সারি বা কলাম বাদ দিতে ব্যবহৃত হয়।এটি আপনাকে ডেটা ক্লিনিং এবং প্রিপ্রসেসিং-এর জন্য গুরুত্বপূর্ণ হাতিয়ার সরবরাহ করে, যার মাধ্যমে আপনি ডেটা বিশ্লেষণ এবং মডেল ট্রেনিংয়ের জন্য প্রস্তুত করতে পারেন।
Python-এ ডেটা প্রক্রিয়াকরণের জন্য Pandas লাইব্রেরি ব্যবহৃত হয়। Data Aggregation এবং Grouping হল দুটি গুরুত্বপূর্ণ টেকনিক যা ডেটাকে বিভিন্ন গ্রুপে ভাগ করে এবং প্রতিটি গ্রুপের উপর কিছু স্ট্যাটিস্টিক্যাল অপারেশন (যেমন গড়, সর্বোচ্চ, সর্বনিম্ন, মোট) প্রয়োগ করতে সহায়ক। এটি সাধারণত ডেটা বিশ্লেষণে ব্যবহৃত হয়, যেমন ব্যবসায়িক ডেটা বিশ্লেষণ, আর্থিক বিশ্লেষণ, এবং বৈজ্ঞানিক গবেষণায়।
Pandas-এ groupby() ফাংশন ব্যবহার করে আপনি ডেটাকে গ্রুপ করতে পারেন এবং প্রতিটি গ্রুপের জন্য বিভিন্ন পরিসংখ্যান (aggregation) করতে পারেন। এই টেকনিকটি ডেটাকে একটি নির্দিষ্ট বৈশিষ্ট্যের উপর ভিত্তি করে গ্রুপিং এবং সেই গ্রুপগুলোর উপর কার্যক্রম করার জন্য অত্যন্ত শক্তিশালী।
groupby()
ফাংশন Pandas DataFrame বা Series-এ ব্যবহৃত হয় ডেটাকে একটি বা একাধিক কীগুলোর (column) ভিত্তিতে গ্রুপ করার জন্য।
df.groupby('column_name')
এটি column_name
এর ভিত্তিতে ডেটাকে গ্রুপ করবে, এবং গ্রুপের উপর কোনও পরিসংখ্যানিক ফাংশন প্রয়োগ করতে পারবেন।
ডেটা গ্রুপ করার পরে, আমরা সাধারণত সেই গ্রুপগুলোর উপর কিছু পরিসংখ্যানিক অপারেশন (aggregation) করতে চাই। কিছু সাধারণ aggregation ফাংশন হল:
ধরা যাক, আমাদের কাছে একটি ডেটাসেট রয়েছে যেখানে কিছু বিক্রয় ডেটা রয়েছে, এবং আমরা প্রতিটি বিক্রয় বিভাগের জন্য গড় বিক্রয় নির্ণয় করতে চাই।
import pandas as pd
# উদাহরণ ডেটা তৈরি
data = {
'Department': ['HR', 'IT', 'HR', 'IT', 'Sales', 'Sales', 'IT', 'HR'],
'Employee': ['Alice', 'Bob', 'Charlie', 'David', 'Eve', 'Frank', 'Grace', 'Hank'],
'Sales': [200, 300, 150, 400, 500, 600, 350, 250]
}
df = pd.DataFrame(data)
# 'Department' অনুযায়ী ডেটা গ্রুপ করা এবং গড় বিক্রয় বের করা
grouped = df.groupby('Department')['Sales'].mean()
print(grouped)
আউটপুট:
Department
HR 200.000000
IT 350.000000
Sales 550.000000
Name: Sales, dtype: float64
এখানে, আমরা Department কলামের ভিত্তিতে ডেটা গ্রুপ করেছি এবং প্রতিটি গ্রুপের জন্য Sales কলামের গড় বের করেছি।
আমরা একাধিক কলাম ব্যবহার করেও গ্রুপ করতে পারি। উদাহরণস্বরূপ, যদি আমাদের "Department" এবং "Employee" কলামের ভিত্তিতে ডেটা গ্রুপ করতে হয়:
# 'Department' এবং 'Employee' এর ভিত্তিতে গ্রুপ করা এবং বিক্রয়ের মোট পরিমাণ বের করা
grouped = df.groupby(['Department', 'Employee'])['Sales'].sum()
print(grouped)
আউটপুট:
Department Employee
HR Alice 200
Charlie 150
Hank 250
IT Bob 300
David 400
Grace 350
Sales Eve 500
Frank 600
Name: Sales, dtype: int64
এখানে, Department এবং Employee দুইটি কলামের ভিত্তিতে ডেটা গ্রুপ করা হয়েছে এবং প্রতিটি গ্রুপের জন্য বিক্রয়ের মোট পরিমাণ বের করা হয়েছে।
একাধিক aggregation ফাংশন প্রয়োগ করা সম্ভব। Pandas-এ এটি খুব সহজ, আপনি একাধিক ফাংশন একসাথে ব্যবহার করতে পারেন agg() ফাংশনের মাধ্যমে।
# 'Department' এর ভিত্তিতে গ্রুপ করা এবং একাধিক aggregation ফাংশন প্রয়োগ করা
grouped = df.groupby('Department')['Sales'].agg(['sum', 'mean', 'min', 'max'])
print(grouped)
আউটপুট:
sum mean min max
Department
HR 600 200.0 150 250
IT 1050 350.0 300 400
Sales 1100 550.0 500 600
এখানে, আমরা sum, mean, min, এবং max একসাথে ব্যবহার করে প্রতিটি Department এর জন্য বিভিন্ন পরিসংখ্যান বের করেছি।
Pandas-এ filter() ফাংশন ব্যবহার করে আপনি নির্দিষ্ট গ্রুপের উপর নির্ভর করে ডেটা ফিল্টার করতে পারেন। উদাহরণস্বরূপ, যদি আপনি এমন সব বিভাগ চাচ্ছেন যার গড় বিক্রয় ৩০০ এর বেশি:
# filter() ফাংশন ব্যবহার করে গড় বিক্রয় 300 এর বেশি এমন বিভাগগুলি নির্বাচন করা
filtered = df.groupby('Department').filter(lambda x: x['Sales'].mean() > 300)
print(filtered)
আউটপুট:
Department Employee Sales
1 IT Bob 300
3 IT David 400
6 IT Grace 350
4 Sales Eve 500
5 Sales Frank 600
এখানে, আমরা filter() ফাংশন ব্যবহার করে শুধুমাত্র সেই বিভাগগুলিই নির্বাচন করেছি, যার গড় বিক্রয় ৩০০ এর বেশি।
Pandas-এ groupby() ফাংশন ব্যবহার করে আপনি সহজেই ডেটাকে গ্রুপ করতে পারেন এবং প্রতিটি গ্রুপের উপর বিভিন্ন aggregation অপারেশন প্রয়োগ করতে পারেন। এটি ডেটা বিশ্লেষণের একটি শক্তিশালী এবং অপরিহার্য টুল। groupby() ফাংশন আপনাকে ডেটা গ্রুপ করার পর বিভিন্ন পরিসংখ্যানিক অপারেশন যেমন sum(), mean(), count(), min(), max(), agg(), এবং filter() প্রয়োগ করে আপনার ডেটা বিশ্লেষণ করতে সহায়ক হয়।
Read more