现有数据框架:
Id Month Year scheduled completed
A Jan 2021 0 0
A Feb 2021 1 0
A mar 2021 0 0
B June 2021 0 1
B July 2021 0 1
B Aug 2021 0 1
B Sep 2021 0 1
C Nov 2021 1 0
C Dec 2021 1 0
C Jan 2022 1 0
C Feb 2022 1 0
预期的 Dataframe :
Id status
A defaulter
B non_defaulter
C defaulter
我正在尝试为他们的每项活动创建一个状态标签。如果连续三个月completed列保持0,则该ID将被标记为“defaulter”或“non_defaulter”
2条答案
按热度按时间xwbd5t1u1#
Idea是聚合每个连续组
0
的值,每个Id
和助手Seriess
由Series.cumsum
创建,计数True
的s值,然后由于可能的多个组Id
聚合max
和最后一组numpy.where
中的值:bttbmeg02#
您可以使用双
groupby
来计算completed
中连续的1,然后确保至少有一个大于或等于N=3
的延伸:输出量: