2015-11-12 37 views
1

我有一個數據框和一個整數值的列(在我的情況下0和1)。索引是時間。我需要一個列表,當有一個「區域」開始和結束。我可以用diff做,然後循環。Python的數據框,獲取事件的開始和結束的列表

例子:

import pandas as pd 
df = pd.DataFrame(index = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]) 
df['test'] = pd.DataFrame([0, 1, 1, 1, 0, 0, 1, 1, 1, 0], index = df.index) 

methodOfLooking = ((2,4),(7,9)) # something like this should be the result 

的一種有效的方式來獲得結果中的任何想法?

回答

2

您可以使用diffzip得到的開始和結束索引:

ix = df.test.diff().fillna(0) 

In [74]: zip(df.index[ix==1],df.index[ix==-1]-1) 
Out[74]: [(2, 4), (7, 9)] 
相關問題