kdb + có chức năng aj thường được sử dụng để nối các bảng cùng với các cột thời gian.KDB + như asof tham gia cho dữ liệu timeseries trong gấu trúc?
Dưới đây là ví dụ mà tôi có bảng thương mại và báo giá và tôi nhận được báo giá hiện hành cho mỗi giao dịch.
q)5# t
time sym price size
-----------------------------
09:30:00.439 NVDA 13.42 60511
09:30:00.439 NVDA 13.42 60511
09:30:02.332 NVDA 13.42 100
09:30:02.332 NVDA 13.42 100
09:30:02.333 NVDA 13.41 100
q)5# q
time sym bid ask bsize asize
-----------------------------------------
09:30:00.026 NVDA 13.34 13.44 3 16
09:30:00.043 NVDA 13.34 13.44 3 17
09:30:00.121 NVDA 13.36 13.65 1 10
09:30:00.386 NVDA 13.36 13.52 21 1
09:30:00.440 NVDA 13.4 13.44 15 17
q)5# aj[`time; t; q]
time sym price size bid ask bsize asize
-----------------------------------------------------
09:30:00.439 NVDA 13.42 60511 13.36 13.52 21 1
09:30:00.439 NVDA 13.42 60511 13.36 13.52 21 1
09:30:02.332 NVDA 13.42 100 13.34 13.61 1 1
09:30:02.332 NVDA 13.42 100 13.34 13.61 1 1
09:30:02.333 NVDA 13.41 100 13.34 13.51 1 1
Làm thế nào tôi có thể làm các hoạt động tương tự sử dụng gấu trúc? Tôi đang làm việc với các dataframes thương mại và báo giá trong đó chỉ mục là datetime64.
In [55]: quotes.head()
Out[55]:
bid ask bsize asize
2012-09-06 09:30:00.026000 13.34 13.44 3 16
2012-09-06 09:30:00.043000 13.34 13.44 3 17
2012-09-06 09:30:00.121000 13.36 13.65 1 10
2012-09-06 09:30:00.386000 13.36 13.52 21 1
2012-09-06 09:30:00.440000 13.40 13.44 15 17
In [56]: trades.head()
Out[56]:
price size
2012-09-06 09:30:00.439000 13.42 60511
2012-09-06 09:30:00.439000 13.42 60511
2012-09-06 09:30:02.332000 13.42 100
2012-09-06 09:30:02.332000 13.42 100
2012-09-06 09:30:02.333000 13.41 100
Tôi thấy rằng gấu trúc có chức năng asof nhưng không được xác định trên DataFrame, chỉ trên đối tượng Chuỗi. Tôi đoán người ta có thể lặp qua mỗi Series và sắp xếp chúng từng cái một, nhưng tôi tự hỏi nếu có một cách tốt hơn?
điều này cũng được gọi là * lăn tham gia * – jangorecki