প্যান্ডাস ডেটাফ্রেমে নির্দিষ্ট কলাম অনুযায়ী গ্রুপিং করার জন্য groupby() মেথড ব্যবহার করা হয়। গ্রুপ করার পর অ্যাগ্রিগেশন ফাংশন (mean, sum, count ইত্যাদি) প্রয়োগ করা যায়।
উদাহরণ: গাড়ির নাম অনুযায়ী গোষ্ঠীবদ্ধ করে গড় রেজিস্ট্রেশন মূল্য বের করা
import pandas as pd
df = pd.DataFrame({
"Car": ["Audi", "Lexus", "Audi", "Mercedes", "Audi", "Lexus", "Mercedes", "Lexus", "Mercedes"],
"Reg_Price": [1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350]
})
print("মূল ডেটাফ্রেম:")
print(df)
# Car কলাম অনুযায়ী গ্রুপ
grouped = df.groupby("Car")
# গড় রেজিস্ট্রেশন মূল্য
mean_prices = grouped.mean()
print("\nগাড়ির নাম অনুযায়ী গড় রেজিস্ট্রেশন মূল্য:")
print(mean_prices)
আউটপুট
মূল ডেটাফ্রেম:
Car Reg_Price
0 Audi 1000
1 Lexus 1400
2 Audi 1100
3 Mercedes 900
4 Audi 1700
5 Lexus 1800
6 Mercedes 1300
7 Lexus 1150
8 Mercedes 1350
গাড়ির নাম অনুযায়ী গড় রেজিস্ট্রেশন মূল্য:
Reg_Price
Car
Audi 1266.666667
Lexus 1450.000000
Mercedes 1183.333333
অন্যান্য অ্যাগ্রিগেশন ফাংশন
# একসাথে একাধিক ফাংশন
stats = grouped['Reg_Price'].agg(['mean', 'sum', 'count', 'min', 'max', 'std'])
print(stats)
# কাস্টম ফাংশন
def range_func(x):
return x.max() - x.min()
custom = grouped['Reg_Price'].agg(['mean', range_func])
print(custom)
as_index=False ব্যবহার
# গ্রুপিং কলামকে কলাম হিসেবে রাখতে (ইন্ডেক্স না করে)
result = df.groupby("Car", as_index=False)["Reg_Price"].mean()
print(result)
# Car Reg_Price
# 0 Audi 1266.666667
# 1 Lexus 1450.000000
# 2 Mercedes 1183.333333
as_index=False দিলে ফলাফল ডেটাফ্রেম হিসেবে আসে, যা আরও কাজে লাগানো সহজ।