2017-06-01 61 views
0

从数据框类似如下:填写大熊猫多指数的差距开始和结束时间戳

            value fill 
start      end 
2016-07-15 00:46:11  2016-07-19 03:35:34  1  a 
2016-08-21 07:55:31  2016-08-22 18:24:49  2  b 
2016-09-26 03:09:12  2016-09-26 06:06:12  3  c 

我正在寻找一种方式来添加行填补国内空白,每个新行采取的fill列作为其新的value现有的相邻行。

在前面的例子的输出然后将:

            value 
start      end 
2016-07-15 00:46:11  2016-07-19 03:35:34  1 
2016-07-19 03:35:34  2016-08-21 07:55:31  a 
2016-08-21 07:55:31  2016-08-22 18:24:49  2 
2016-08-22 18:24:49  2016-09-26 03:09:12  b 
2016-09-26 03:09:12  2016-09-26 06:06:12  3 

向量化方法,避免遍历纯Python数据帧,将重优选作为我必须处理大量的行。

+0

你尝试'df.stack()'? – MaxU

回答

2

使用DataFrame.stack()方法:

In [189]: df.stack().reset_index(level=2, drop=True).to_frame('value') 
Out[189]: 
             value 
start    end 
2016-07-15 00:46:11 2016-07-19 03:35:34  1 
        2016-07-19 03:35:34  a 
2016-08-21 07:55:31 2016-08-22 18:24:49  2 
        2016-08-22 18:24:49  b 
2016-09-26 03:09:12 2016-09-26 06:06:12  3 
        2016-09-26 06:06:12  c 
+0

@jezrael,你是指错误的“结束”时间? – MaxU

+2

我认为OP没有按照期望的输出。但也许我错了。 – jezrael