Недавно я получил CSV-файл с транзакциями, совершенными нашей компанией на различных рынках / инструментах. Мой набор данных состоит из более чем 500 000 строк.
Вот мой пример данных без нерелевантных (на данный момент) столбцов:
Market Price Quantity
Time
2019-01-01 09:42:16 Share 180.00 5.0
2019-01-01 09:44:59 Share 180.00 10.0
2019-01-01 09:46:24 Share 180.00 6.0
2019-01-01 09:47:21 Share 180.00 5.0
2019-01-01 09:52:19 Share 180.00 10.0
2019-01-01 09:52:19 Share 180.00 5.0
2019-01-01 09:52:19 Share 180.00 5.0
2019-01-01 09:57:37 Share 180.01 10.0
2019-01-02 10:03:43 Share 235.00 10.0
2019-01-02 10:04:11 Share 235.00 10.0
2019-01-02 10:04:19 Share 235.00 10.0
... ... ... ...
2019-05-13 10:06:44 Share 233.00 10.0
2019-05-13 10:11:45 Share 233.00 10.0
2019-05-13 10:11:45 Share 233.00 10.0
2019-05-13 10:11:49 Share 234.00 10.0
2019-05-13 10:11:49 Share 234.00 10.0
2019-05-13 10:11:54 Share 233.00 10.0
2019-05-14 09:50:56 Share 230.00 10.0
2019-05-14 09:53:31 Share 229.00 10.0
2019-05-14 09:53:55 Share 229.00 5.0
2019-05-14 09:53:59 Share 229.00 3.0
2019-05-14 09:54:01 Share 229.00 2.0
2019-05-14 09:54:07 Share 229.00 3.0
2019-05-14 09:54:16 Share 229.00 2.0
Я уже преобразовал столбец Time в pandas datetime.
Хотя мне удалось получить некоторую желаемую статистику, я застрял при поиске времени первой и последней транзакции для каждого дня.
Expected OUTPUT:
2019-03-12 08:43:23 Share(name) 248 10
2019-03-12 16:48:21 Share(name) 250 20
Ну, у меня нет проблем с получением этого в Excel, но, учитывая быстро растущее количество данных, я бы предпочел использовать для этих целей панды и питон.
Я предполагаю, что некоторая комбинация методов groupby и resample могла бы быть решением, но я понятия не имею, как правильно применить их к моему фрейму данных.
Любые мысли и комментарии будут оценены.
Благодаря Бен Папу Я получил результат, используя:
dbs.groupby(dbs.index.date).apply(lambda x: x.iloc[np.r_[0:1,-1:0]])
Вот еще один вопрос, который я задал. Какую функцию я предполагаю использовать, чтобы получить максимальное значение времени первой транзакции. Другими словами, в какой день рынок начинается не позднее?