如何根据条件在数据框中汇总和插入记录?

问题描述 投票:0回答:2
   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
python python-3.x pandas python-2.7 date
2个回答
0
投票
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方法可以使用日期时间方法很好地完成,但是要聚合方法。很抱歉,如果代码无法正常工作,因为我无法对其进行测试,但希望它能使您对思考过程有所了解。让我知道您是否还有其他问题,或者我是否完全误解了您的问题。祝你好运!


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.