我正在使用groupby,但我不想失去未包含在groupby中的其他列,例如我有一个数据框:
id date name item price unit store
1 1/1/2020 abc apples 200 Fruits BigB
1 1/2/2020 abc apples 100 Fruits BigB
1 1/3/2020 abc apples 250 Fruits BigB
1 1/1/2020 abc mangoes 350 Fruits BigB
1 1/2/2020 abc mangoes 150 Fruits BigB
1 1/3/2020 abc mangoes 50 Fruits BigB
2 1/1/2020 xyz apples 50 Fruits BigB
2 1/2/2020 xyz apples 50 Fruits BigB
我想创建两列标志并根据id和name开始,如果价格值大于其前一行,则标志为1,否则为0。数据必须基于id、name和items。start列基于flag。最初的start值将是第一行的价格值。如果flag为0,则start具有先前的值,当flag改变为1时,start也将更改为其相应的价格值。
输出将为:id date name item price unit store Flag start
1 1/1/2020 abc apples 200 Fruits BigB 0 200
1 1/2/2020 abc apples 100 Fruits BigB 0 200
1 1/3/2020 abc apples 250 Fruits BigB 1 250
1 1/1/2020 abc mangoes 350 Fruits BigB 0 350
1 1/2/2020 abc mangoes 150 Fruits BigB 0 350
1 1/3/2020 abc mangoes 50 Fruits BigB 0 350
2 1/1/2020 xyz apples 50 Fruits BigB 0 50
2 1/2/2020 xyz apples 50 Fruits BigB 0 50
按照id、name和item列进行分组,提前致谢。df已按照id、name、item和date进行排序。