Pandas:按行展开dataframe,类似于R的SurvSplit()

2021-08-02 18:14:53 发布

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

我有一个雇员和工作年限的数据框架:

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

因此,理想情况下,我想提供一个listtuple的块来指导行扩展(例如[1,2]到第1年和第2年的块)

这种数据帧操作类似于R的survSplit()——参见第127页here

我该怎么做?我发现了一些关于Stackoverflow的文章,但它们讨论了不同的数据帧扩展目标。你知道吗