2017-06-01 10 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でDATAFRAMEをループ回避、重く好ましいであろう。 DataFrame.stack()方法

+0

あなたは ')(' df.stackを試してみたのですか? – MaxU

答えて

2

使用:

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、間違った 'end'時間ですか? – MaxU

+2

私はそれがOPが望む出力として持っているものではないと思います。しかし、多分私は間違っています。 – jezrael

関連する問題