মাল্টি-ইনডেক্স (MultiIndex) ডেটাফ্রেমে groupby() করার জন্য level প্যারামিটার ব্যবহার করা হয়, যা ইনডেক্স লেভেলের নাম বা পজিশন নির্দিষ্ট করে।
উদাহরণ: CSV থেকে মাল্টি-ইনডেক্স তৈরি করে গ্রুপবাই
import pandas as pd
# ধরে নিচ্ছি sales.csv ফাইলে Car, Place, UnitsSold কলাম আছে
# df = pd.read_csv("sales.csv")
# ডেমো ডেটা
df = pd.DataFrame({
'Car': ['BMW', 'Mercedes', 'Lamborghini', 'Audi', 'Mercedes', 'Porsche', 'RollsRoyce', 'BMW'],
'Place': ['Delhi', 'Hyderabad', 'Chandigarh', 'Bangalore', 'Hyderabad', 'Mumbai', 'Mumbai', 'Delhi'],
'UnitsSold': [95, 80, 80, 75, 90, 90, 95, 50]
})
print("মূল ডেটাফ্রেম:")
print(df)
# Car এবং Place কলামকে মাল্টি-ইনডেক্স বানানো
df = df.set_index(['Car', 'Place'])
df.sort_index(inplace=True)
print("\nমাল্টি-ইনডেক্স ডেটাফ্রেম:")
print(df)
# লেভেল 'Car' অনুযায়ী গ্রুপ করে UnitsSold-এর গড়
result = df.groupby(level='Car')['UnitsSold'].mean()
print("\nগাড়ির নাম অনুযায়ী গড় UnitsSold:")
print(result)
আউটপুট
মাল্টি-ইনডেক্স ডেটাফ্রেম:
UnitsSold
Car Place
Audi Bangalore 75
BMW Delhi 95
BMW Delhi 50
Lamborghini Chandigarh 80
Mercedes Hyderabad 80
Mercedes Hyderabad 90
Porsche Mumbai 90
RollsRoyce Mumbai 95
গাড়ির নাম অনুযায়ী গড় UnitsSold:
Car
Audi 75.0
BMW 72.5
Lamborghini 80.0
Mercedes 85.0
Porsche 90.0
RollsRoyce 95.0
Name: UnitsSold, dtype: float64
ব্যাখ্যা
set_index(['Car', 'Place'])— দুই কলাম থেকে মাল্টি-ইনডেক্স তৈরিsort_index()— ইনডেক্স সর্ট (গ্রুপবাই-এর জন্য সুপারিশকৃত)groupby(level='Car')— মাল্টি-ইনডেক্সের 'Car' লেভেল অনুযায়ী গ্রুপ['UnitsSold'].mean()— শুধু UnitsSold কলামের গড়
অন্যান্য level প্যারামিটার
# লেভেল নম্বর দিয়ে (০ = Car, ১ = Place)
df.groupby(level=0)['UnitsSold'].mean()
# একাধিক লেভেল
df.groupby(level=['Car', 'Place'])['UnitsSold'].sum()
# রিসেট ইনডেক্স দিয়ে সাধারণ ডেটাফ্রেমে ফিরে আসা
result = df.groupby(level='Car')['UnitsSold'].mean().reset_index()
groupby() vs level প্যারামিটার
df.groupby('Car')— কলাম 'Car' অনুযায়ী (যদি Car কলাম থাকে)df.groupby(level='Car')— ইনডেক্স লেভেল 'Car' অনুযায়ী (মাল্টি-ইনডেক্সের ক্ষেত্রে)