COUNTRY DATE COMPANY ITEM SALES
0 TAIWAN 01-02-2019 CHINAM TOY 2500
1 TAIWAN 05-02-2019 CHINAM TOY 2500
2 TAIWAN 26-02-2019 CHINAM TOY 2500
3 TAIWAN 01-02-2019 CHINAM CERAMIC 500
4 TAIWAN 05-02-2019 CHINAM CERAMIC 5500
5 TAIWAN 26-02-2019 CHINAM CERAMIC 6500
6 TAIWAN 01-02-2019 CHINAM KITCHEN 4500
7 TAIWAN 05-02-2019 CHINAM KITCHEN 4500
8 TAIWAN 26-02-2019 CHINAM KITCHEN 2300
我需要根据某些条件来汇总数据:如果数据帧中最后一个月的最后一天比实际最后一个月(即2019年2月28日)更短,那么我需要进行汇总。关于项目级别的数据,并记录在数据场中。
在我DF的最后日期中提出的要求2019年2月26日,但实际日历的最后日期是2019年2月28日。在这种情况下,我无需在DF上汇总“项目”级别和插入记录。
输出:
COUNTRY DATE COMPANY ITEM SALES
0 TAIWAN 01-02-2019 CHINAM TOY 2500
1 TAIWAN 05-02-2019 CHINAM TOY 2500
2 TAIWAN 26-02-2019 CHINAM TOY 2500
3 TAIWAN 01-02-2019 CHINAM CERAMIC 500
4 TAIWAN 05-02-2019 CHINAM CERAMIC 5500
5 TAIWAN 26-02-2019 CHINAM CERAMIC 6500
6 TAIWAN 01-02-2019 CHINAM KITCHEN 4500
7 TAIWAN 05-02-2019 CHINAM KITCHEN 4500
8 TAIWAN 26-02-2019 CHINAM KITCHEN 2300
9 TAIWAN 01-02-2019 CHINAM TOY 7500
10 TAIWAN 05-02-2019 CHINAM CERAMIC 12500
11 TAIWAN 05-02-2019 CHINAM KITCHEN 11300
df.groupby(["month", "year"]).agg({ITEM: lambda x: np.nan if is_last_day(x["day"].max(), x["month"], x["year"]) else aggregating_method(x["ITEM"]) } )
其中is_last_day方法可以使用日期时间方法很好地完成,但是要聚合方法。很抱歉,如果代码无法正常工作,因为我无法对其进行测试,但希望它能使您对思考过程有所了解。让我知道您是否还有其他问题,或者我是否完全误解了您的问题。祝你好运!