2015-11-12 4 views
1

У меня есть dataframe и столбец с целыми значениями (в моем случае 0 и 1). Индекс - это время. Мне нужен список, когда «области» с ними начинаются и заканчиваются. Я мог бы сделать это с помощью diff и следовать за циклом.python dataframe, получить список начальных и конечных событий

Пример:

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

Вы можете использовать diff и zip получить начальные и конечные показатели:

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

In [74]: zip(df.index[ix==1],df.index[ix==-1]-1) 
Out[74]: [(2, 4), (7, 9)] 
Смежные вопросы