2014-01-21 2 views
1

Я пытаюсь использовать dataframe для выбора событий. Скажем, у меня есть только два вида событий: 1, -1 и следующий dataframe:Подсчет последовательных событий на базе данных pandas по их индексу

a=pd.DataFrame({'ev':[1,1,-1,1,1,1,-1,-1]}) 

с:

a[a['ev']>0] 

я могу выбрать только 1 событие. Теперь я хотел бы подсчитать, сколько у меня последовательных событий; в этом случае я хотел бы получить [2,3]

Дело в том, как получить список (или ряд) индексов, участвующих в a[a['ev']>0]?

ответ

0

добавить .index возвращать список индексов

In [43]: a=pd.DataFrame({'ev':[1,1,-1,1,1,1,-1,-1]}) 

In [44]: b = list(a[a['ev']>0].index) 

In [45]: b 
Out[45]: [0, 1, 3, 4, 5] 
+0

Ваш результат, '[0, 1, 3, 4, 5]', не является результатом искали - '[2, 3]'. –

+1

Полученный результат не имеет никакого смысла. Учитывая его состояние, позиции 2 и 3 соответствуют -1 и 1 соответственно, и поэтому условие не соответствует его результату ... Я показываю ему, как получить список индексов, основанный на состоянии, он может отредактировать условие по желанию своего сердца – scott

Смежные вопросы