Week_number Holiday Description Qty
38 1 A 5
38 0 A 6
38 0 B 1
38 1 C 1
40 0 A 1
我想查找相同的Week_number和Description的重复项。如果我们以上述第38周和Desciption A为例,则有2条记录。然后我想得到这2个数量的总和,所以它将是11。最后合并这两个记录,并将“数量”和“假期”的总和显示为1。
Week_number Holiday Description Qty
38 1 A 11
38 0 B 1
38 1 C 1
40 0 A 1
再次检查Week_number 38的重复项,将有3条记录。并将“假日”更改为所有具有相同“周数”的记录中的1。
Week_number Holiday Description Qty
38 1 A 11
38 1 B 1
38 1 C 1
40 0 A 1
任何评论该怎么做?谢谢
在假日== 1处查找week_number,然后通过为该特定星期号将Holiday分配为1,将剩余的0转换为1。最后一部分是根据子集= ['Week_number','Description']
删除重复项df['Qty'] = df.groupby(['Description','Week_number']).Qty.transform('sum')
cond = (df.groupby(['Week_number','Description'])
.filter(lambda x: x.Holiday.eq(1).all())
.Week_number
.array)
OR
cond = df.query('Holiday ==1').Week_number.unique()
df['Holiday'] = np.where(df.Week_number.isin(cond),1,df.Holiday)
df.drop_duplicates(['Week_number','Description'])
Week_number Holiday Description Qty
0 38 1 A 11
2 38 1 B 1
3 38 1 C 1
4 40 0 A 1