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

পাইথনে পান্ডাস ডেটাফ্রেমকে বছরে অনুযায়ী গ্রুপ করা (Grouper ব্যবহার)

পান্ডাস groupby()-এ pd.Grouper ব্যবহার করে ডেট কলাম অনুযায়ী টাইম-বেসড গ্রুপিং করা যায় (যেমন: ৩ বছরের ইন্টারভাল)।

ডেটাফ্রেম তৈরি (Date_of_Purchase কলামসহ):

dataFrame = pd.DataFrame({
    "Car": ["Audi", "Lexus", "Tesla", "Mercedes", "BMW", "Toyota", "Nissan", "Bentley", "Mustang"],
    "Date_of_Purchase": [pd.Timestamp("2021-06-10"), pd.Timestamp("2019-07-11"), pd.Timestamp("2016-06-25"),
                         pd.Timestamp("2021-06-29"), pd.Timestamp("2020-03-20"), pd.Timestamp("2019-01-22"),
                         pd.Timestamp("2011-01-06"), pd.Timestamp("2013-01-04"), pd.Timestamp("2014-05-09")],
    "Reg_Price": [1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350]
})

Grouper দিয়ে ৩ বছরের ইন্টারভালে গ্রুপ এবং সম:

dataFrame.groupby(pd.Grouper(key='Date_of_Purchase', axis=0, freq='3Y')).sum()

সম্পূর্ণ কোড উদাহরণ:

import pandas as pd

# ডেটাফ্রেম তৈরি
dataFrame = pd.DataFrame({
    "Car": ["Audi", "Lexus", "Tesla", "Mercedes", "BMW", "Toyota", "Nissan", "Bentley", "Mustang"],
    "Date_of_Purchase": [pd.Timestamp("2021-06-10"), pd.Timestamp("2019-07-11"), pd.Timestamp("2016-06-25"),
                         pd.Timestamp("2021-06-29"), pd.Timestamp("2020-03-20"), pd.Timestamp("2019-01-22"),
                         pd.Timestamp("2011-01-06"), pd.Timestamp("2013-01-04"), pd.Timestamp("2014-05-09")],
    "Reg_Price": [1000, 1400, 1100, 900, 1700, 1800, 1300, 1150, 1350]
})
print("DataFrame...\n", dataFrame)

# Grouper দিয়ে ৩ বছরে গ্রুপ করে Reg_Price সম
print("\nGroup Dataframe by 3 years...\n", dataFrame.groupby(pd.Grouper(key='Date_of_Purchase', axis=0, freq='3Y')).sum())

আউটপুট:

DataFrame...
    Car  Date_of_Purchase  Reg_Price
0  Audi       2021-06-10       1000
1 Lexus       2019-07-11       1400
2 Tesla       2016-06-25       1100
3 Mercedes    2021-06-29        900
4  BMW        2020-03-20       1700
5 Toyota      2019-01-22       1800
6 Nissan      2011-01-06       1300
7 Bentley     2013-01-04       1150
8 Mustang     2014-05-09       1350

Group Dataframe by 3 years...
            Reg_Price
Date_of_Purchase
2011-12-31         1300
2014-12-31         2500
2017-12-31         1100
2020-12-31         4900
2023-12-31         1900

ব্যাখ্যা:

  • pd.Grouper(key='Date_of_Purchase', freq='3Y'): ডেট কলাম এবং ফ্রিকোয়েন্সি (৩ বছর)
  • axis=0: রো অনুযায়ী (ডিফল্ট)
  • .sum(): প্রতিটি গ্রুপের Reg_Price সম
  • ফ্রিকোয়েন্সি: 'Y' (বছর), 'M' (মাস), 'D' (দিন), 'W' (সপ্তাহ) ইত্যাদি
  1. পাইথনে পান্ডাস ডেটাফ্রেম CSV ফাইলে লেখার পদ্ধতি

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

  3. পাইথনে পান্ডাস ডেটাফ্রেমকে বার গ্রাফে প্লট করার পদ্ধতি

  4. পাইথন পান্ডাস ডেটাফ্রেমে প্রতিটি গ্রুপের সর্বোচ্চ মান নির্বাচন করা