使用某些字段查找重复记录,并使用Pandas库更改字段值

问题描述 投票:-1回答:1
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

任何评论该怎么做?谢谢

python excel pandas pycharm data-science
1个回答
0
投票

在假日== 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
© www.soinside.com 2019 - 2024. All rights reserved.