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

পাইথন: প্যান্ডাস ডেটাফ্রেমে কলাম গ্রুপিং (Grouping Columns)

প্যান্ডাস ডেটাফ্রেমে নির্দিষ্ট কলাম অনুযায়ী গ্রুপিং করার জন্য 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 দিলে ফলাফল ডেটাফ্রেম হিসেবে আসে, যা আরও কাজে লাগানো সহজ।

  1. পাইথনে পান্ডাস ডেটাফ্রেমে কলাম নাম এক্সপ্লিসিটলি নামকরণ করা

  2. পাইথনে পান্ডাস ডেটাফ্রেম থেকে একাধিক কলাম সিলেক্ট করা

  3. পাইথনে পান্ডাস ডেটাফ্রেমের সাবসেট সিলেক্ট করা (সিঙ্গল এবং মাল্টিপল কলাম)

  4. পাইথন পান্ডাস: ডেটাফ্রেমের একাধিক কলাম বার গ্রাফে প্লট করা