我有一个时间序列数据集,基本上是过去5年的材料消耗数据
Material No Consumption Date Consumption
A 2019-06-01 1
A 2019-07-01 2
A 2019-08-01 3
A 2019-09-01 4
A 2019-10-01 0
A 2019-11-01 0
A 2019-12-01 0
A 2020-01-01 1
A 2020-02-01 2
A 2020-03-01 3
A 2020-04-01 0
A 2020-05-01 0
B 2019-06-01 0
B 2019-07-01 0
B 2019-08-01 0
B 2019-09-01 4
B 2019-10-01 0
B 2019-11-01 0
B 2019-12-01 0
B 2020-01-01 4
B 2020-02-01 2
B 2020-03-01 8
B 2020-04-01 0
B 2020-05-01 0
从上面的数据框中,我希望看到材料至少有1个单位消耗量的月份数。输出数据帧应该如下所示
Material no_of_months(Jan2020-May2020) no_of_months(Jun2019-May2020)
A 3 7
B 3 4
目前,我正在对数据帧进行子设置,并使用GROUPBY来计算非零消耗的唯一条目。但是,这需要为不同的时段创建多个数据帧,然后合并它们。我想知道是否可以用字典更好地实现这一点
consumption_jan20_may20 = consumption.loc[consumption['Consumption Date']>='2020-01-01',['Material No','Consumption Date','Consumption']]
consumption_jan20_may20 = consumption_jan20_may20.groupby([pd.Grouper(key='Material No'),grouper])['Consumption'].count().reset_index()
consumption_jan20_may20 = consumption_jan20_may20.groupby('Material No').count().reset_index()
consumption_jan20_may20.columns = ['Material No','no_of_months(Jan2020-May2020)','dummy']
consumption_jan20_may20 = consumption_jan20_may20[['MATNR','no_of_months(Jan2020-May2020)']]
您可以首先限制您正在调查的数据(将其限制为几个月)。假设您要检查前5个月的数据:
然后,您可以使用以下代码查找物料使用量不为零的月份:
如果要查看消耗量不是零的月份数,只需确定新数据帧的长度:
相关问题 更多 >
编程相关推荐