প্যান্ডাস ডেটাফ্রেমকে নির্দিষ্ট দিনের अन्तরাল (interval) অনুযায়ী গ্রুপ করার জন্য pd.Grouper ক্লাস ব্যবহার করা হয়। freq প্যারামিটারে দিনের अन्तরাল নির্দিষ্ট করা হয় (যেমন '7D' = ৭ দিন)।
উদাহরণ: গাড়ি বিক্রির রেকর্ড ৭ দিনের अन्तরালে গ্রুপিং
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)
# ৭ দিনের अन्तরালে গ্রুপ করে Reg_Price যোগফল
grouped = df.groupby(pd.Grouper(key='Date_of_Purchase', axis=0, freq='7D')).sum()
print("\n৭ দিনের अन्तরালে গ্রুপিং (যোগফল):")
print(grouped)
আউটপুট (অংশিক)
৭ দিনের अन्तরালে গ্রুপিং (যোগফল):
Reg_Price
Date_of_Purchase
2021-01-04 2450.0
2021-01-11 NaN
2021-01-18 1800.0
...
2021-06-07 1000.0
2021-06-21 1100.0
2021-06-28 900.0
2021-07-05 1400.0
ব্যাখ্যা
pd.Grouper(key='Date_of_Purchase', freq='7D')— ক্রয়ের তারিখ কলামকে ৭ দিনের বিন্ডে (bin) গ্রুপ করে- প্রতি বিনের শুরু থেকে ৭ দিন পর্যন্ত (inclusive start, exclusive end) রেকর্ডগুলো পড়ে
- যে বিনে কোনো রেকর্ড নেই, সেখানে
NaNদেখায় .sum()— প্রতিটি গ্রুপের Reg_Price যোগফল বের করে
ফ্রিকোয়েন্সি স্ট্রিংস
| কোড | অর্থ |
|---|---|
'D' | দিন (Daily) |
'7D' | ৭ দিন |
'W' | সপ্তাহিক (সোমবার শুরু) |
'M' | মাসিক (মাসের শেষ দিন) |
'Q' | ত্রৈমাসিক |
'Y' | বর্ষিক |
NaN হ্যান্ডলিং
# NaN হাইড বা ০ দিয়ে ফিল
grouped = grouped.fillna(0).astype(int)
# অথবা শুধু নন-নাল গ্রুপ
grouped = grouped.dropna()