2017-10-17 15 views
2
 A   B C D  E  
0 1.0 2013-01-02 1.0 1 test 
1 1.0 2014-01-02 1.0 2 car 
2 1.0 2015-01-02 1.0 3 tested 
3 1.0 2016-01-02 1.0 4 train 

列Eの値に基づいて、上記のうち3つの連続する行を含むようにパンダデータフレームをスライスするにはどうすればよいですか? 「テスト」から「テスト済み」へパンダのデータフレームを2つの列値の間の行でスライスする方法は?

+1

あなたは答えは何だと思いますが...私たちに何を表示します期待される成果は次のようになります。 – piRSquared

答えて

1

IIUC、pd.DataFrame.ilocを使用します。

df.iloc[0:3] 

    A   B C D  E 
0 1.0 2013-01-02 1.0 1 test 
1 1.0 2014-01-02 1.0 2  car 
2 1.0 2015-01-02 1.0 3 tested 
1

私は醜いが、作品このソリューションを、来ない理由..

df.iloc[df.index[(df.E=='test').eq(1)].values[0]:df.index[(df.E=='tested').eq(1)].values[0]+1,:] 

Out[151]: 
    A   B C D  E 
0 1.0 2013-01-02 1.0 1 test 
1 1.0 2014-01-02 1.0 2  car 
2 1.0 2015-01-02 1.0 3 tested 
関連する問題