2017-06-01 60 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