我有一个雇员和工作年限的数据框架:
person_id years
1 1.00
2 2.34
3 6.85
我想根据雇员任期中预定义的“块”逐行扩展dataframe。例如,如果我想将人们的任期划分为1年,那么上面的数据框将变成:
person_id tstart tend
1 0.00 1.00
2 0.00 1.00
2 1.00 2.34
3 0.00 1.00
3 1.00 6.85
如果我想在1年和2年的时间段进行分块,原始数据帧将变为:
person_id tstart tend
1 0.00 1.00
2 0.00 1.00
2 1.00 2.00
2 2.00 2.34
3 0.00 1.00
3 1.00 2.00
3 2.00 6.85
因此,理想情况下,我想提供一个list
或tuple
的块来指导行扩展(例如[1,2]
到第1年和第2年的块)
这种数据帧操作类似于R的survSplit()
——参见第127页here
我该怎么做?我发现了一些关于Stackoverflow的文章,但它们讨论了不同的数据帧扩展目标。你知道吗
考虑以下定义的方法。虽然有点走查,但它没有使用循环,不像survsplit实际的源代码是用C编写的
下面基本上运行一个交叉连接迭代任期年到最大块arg,并合并到人的年。然后,在
merge
结果上串联具有计算的tstart和tend列的原始数据帧值。一个键必须分配给原始数据帧,这里是人:输出(三次运行)
相关问题 更多 >
编程相关推荐