如何在pandas中输出分组列之间的差异?

2024-05-15 04:11:20 发布

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

我有这样一个数据帧:

 Product Family   Date     Price Type    Price
 Cereal            2017-11           1     4.99
 Cereal            2017-12           1     4.59
 Cheese            2017-11           1     3.99
 Cheese            2017-12           2     3.99
 Oats              2017-11           3     5.99
 Oats              2018-12           3     5.99

数据按月份分组。我想要的是为每个产品系列输出/标记价格类型与上月不同的行。 所以在这个例子中,我希望返回如下内容:

  Product Family   Date     Price Type    Price   Flag
  Cheese            2017-11           1     3.99  price type change
  Cheese            2017-12           2     3.99  price type change

我试图构造布尔语句,并将其赋给“Flag”列,但我不断地得到错误,并且没有对每个产品系列每月的数据进行比较


Tags: 数据date产品typeproductchangefamilyprice
1条回答
网友
1楼 · 发布于 2024-05-15 04:11:20
df['Flag']=df.groupby('ProductFamily').PriceType.transform('nunique').gt(1).map({True:'Flag',False:'Not Flag'})
df
Out[59]: 
  ProductFamily     Date  PriceType  Price      Flag
0        Cereal  2017-11          1   4.99  Not Flag
1        Cereal  2017-12          1   4.59  Not Flag
2        Cheese  2017-11          1   3.99      Flag
3        Cheese  2017-12          2   3.99      Flag
4          Oats  2017-11          3   5.99  Not Flag
5          Oats  2018-12          3   5.99  Not Flag

相关问题 更多 >

    热门问题