Я нашел этот пример . Мне нужно получить все строки, где в течение одной секунды следующий ряд будет иметь такую же цену. Так что это та же проблема, что и на другой вопрос, но она не работает для меня.
Я использую Python 3.6.3 и Pandas версии 0.22.0
my df:
timestamp price
0 2018-04-29 13:14:43.026 6394.0
1 2018-04-29 13:16:53.714 6378.0
2 2018-04-29 13:17:01.324 6378.0
3 2018-04-29 13:17:02.246 6384.0
4 2018-04-29 13:17:07.413 6384.0
5 2018-04-29 13:17:08.331 6380.0
6 2018-04-29 13:17:11.437 6380.0
7 2018-04-29 13:17:11.895 6377.0
8 2018-04-29 13:17:13.449 6377.0
9 2018-04-29 13:17:13.452 6379.0
timestamp datetime64[ns]
price float64
dtype: object
Я пробую следующий код:
data = df[(df.groupby(["price"], as_index=False)["timestamp"].diff().fillna(0).dt.seconds <= 1).reset_index(drop=True)]
и вот результат:
timestamp price
0 2018-04-29 13:14:43.026 6394.0
1 2018-04-29 13:16:53.714 6378.0
2 2018-04-29 13:17:01.324 6378.0
4 2018-04-29 13:17:07.413 6384.0
5 2018-04-29 13:17:08.331 6380.0
7 2018-04-29 13:17:11.895 6377.0
9 2018-04-29 13:17:13.452 6379.0
EDIT:
Выходные данные должны быть пустыми, но если мы создадим этот фрейм данных, т.е.
timestamp price
0 2018-04-29 13:14:43.026 6394.0
1 2018-04-29 13:16:53.714 6378.0
2 2018-04-29 13:17:01.324 6378.0
3 2018-04-29 13:17:02.246 6378.0
4 2018-04-29 13:17:07.413 6384.0
5 2018-04-29 13:17:08.331 6380.0
6 2018-04-29 13:17:11.437 6380.0
7 2018-04-29 13:17:11.895 6377.0
8 2018-04-29 13:17:13.449 6377.0
9 2018-04-29 13:17:13.452 6377.0
должно вывести:
timestamp price
2 2018-04-29 13:17:01.324 6378.0
3 2018-04-29 13:17:02.246 6378.0
8 2018-04-29 13:17:13.449 6377.0
9 2018-04-29 13:17:13.452 6377.0