网上的一个问题,对连续出差进行天数的累计,如下,同一个人连续出差同一个地方,则出差天数累加,反之如果不连续同,则单独计算:
这个问题的关键就是同一人出差地连续才能天数累计,所以不能简单的用sumif等函数,这样会造成同一出差地错误的累计,需要先将同一人,同一连续出差地进分组后再累计天数:
要实现以上分组,可用Python循环遍历所有行数据进行分组,完整的代码如下(考虑到各种情况 ):
当分组完成后,便可通过分组号进一步求和,不会因为数据不连续出现间断错误:
完成以上步骤,可以使用Pandas的gruopby等函数,完整的代码如下:看下最终结果:
完美对出差进行了分组,此案列还可适用于以下场景:用户行为序列分析(如连续登录分组);生产流水线批次划分;交通轨迹分段处理;金融交易连续性识别等。