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

পাইথন: প্যান্ডাস ডেটাফ্রেমকে মাস অনুযায়ী গ্রুপ করা (Group by Month)

প্যান্ডাস ডেটাফ্রেমকে মাস অনুযায়ী গ্রুপ করার জন্য pd.Grouper ক্লাসের freq='M' প্যারামিটার ব্যবহার করা হয়। এটি ডেটাইম কলামকে মাসিক বিন্ডে (bin) গ্রুপ করে।

উদাহরণ: গাড়ি ক্রয়ের রেকর্ড মাসভিত্তিক গ্রুপিং


import pandas as pd

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

print("মূল ডেটাফ্রেম:")
print(df)

# মাসভিত্তিক গ্রুপিং (freq='M')
monthly = df.groupby(pd.Grouper(key='Date_of_Purchase', axis=0, freq='M')).sum()
print("\nমাসভিত্তিক রেজিস্ট্রেশন প্রাইস যোগফল:")
print(monthly)

আউটপুট


মূল ডেটাফ্রেম:
       Car Date_of_Purchase  Reg_Price
0     Audi       2021-06-10       1000
1    Lexus       2021-07-11       1400
2    Tesla       2021-06-25       1100
3 Mercedes       2021-06-29        900
4      BMW       2021-03-20       1700
5   Toyota       2021-01-22       1800
6   Nissan       2021-01-06       1300
7  Bentley       2021-01-04       1150
8  Mustang       2021-05-09       1350

মাসভিত্তিক রেজিস্ট্রেশন প্রাইস যোগফল:
               Reg_Price
Date_of_Purchase        
2021-01-31        4250.0
2021-02-28           NaN
2021-03-31        1700.0
2021-04-30           NaN
2021-05-31        1350.0
2021-06-30        3000.0
2021-07-31        1400.0

ব্যাখ্যা

  • freq='M' — মাসের শেষ দিন (month end) অনুযায়ী বিন্ডিং
  • জানুয়ারি: ১১৫০ + ১৩০০ + ১৮০০ = ৪২৫০
  • জুন: ১০০০ + ১১০০ + ৯০০ = ৩০০০
  • যে মাসে ডেটা নেই, সেখানে NaN

freq প্যারামিটারের বৈকল্পিক মান

কোডঅর্থউদাহরণ আউটপুট ইনডেক্স
'D'দিন2021-01-04, 2021-01-05...
'W'সপ্তাহ (সোমবার)2021-01-04, 2021-01-11...
'M'মাস শেষ2021-01-31, 2021-02-28...
'MS'মাস শুরু2021-01-01, 2021-02-01...
'Q'ত্রৈমাস শেষ2021-03-31, 2021-06-30...
'Y'বর্ষ শেষ2021-12-31...

রিস্যাম্পলিং বিকল্প (যদি ডেটাইম ইনডেক্স থাকে)


df = df.set_index('Date_of_Purchase')
monthly = df.resample('M').sum()

resample() টাইম সিরিজ ডেটার জন্য আরও সুবিধাজনক।

  1. পাইথনে পান্ডাস ডেটাফ্রেম CSV ফাইলে লেখার পদ্ধতি

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

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

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