使用某些条件从多索引数据帧创建新数据帧

2024-09-28 23:54:10 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个时间序列数据集,基本上是过去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)']]

Tags: of数据nodatematerial材料消耗consumption
1条回答
网友
1楼 · 发布于 2024-09-28 23:54:10

您可以首先限制您正在调查的数据(将其限制为几个月)。假设您要检查前5个月的数据:

df = df[:6]

然后,您可以使用以下代码查找物料使用量不为零的月份:

df_nonezero = df[df['Consumption']!=0]

如果要查看消耗量不是零的月份数,只需确定新数据帧的长度:

len(df_nonezero)

相关问题 更多 >