Lastest Update: 20250413
시간순서대로 정렬되어 있음.float64 dtype100_000개 이상 1_000_000개 이하 라고 가정10개 이상 40개이하 라고 가정1_000_000개에서 40_000_000개 라고 가정Indexing: Random 접근
Rolling: Seqeuncial 접근
이 두가지가 시계열 데이터인 시장 데이터를 다룰대 많이 사용하는 함수이다. 대부분의 코드에서는 df.loc 를 사용해서 특정 컬럼의 데이터에 접근한다.

우리가 사용하는 Indexing 방법(직관적)
def df_slice_linear_indexing(df, dt_from, dt_to, cols: List[str] | None = None):
return df.loc[dt_from:dt_to, :] if cols is None else df.loc[dt_from:dt_to, cols]
index가 datetime 이기 때문에 O(1) 접근은 불가능하다. 어쩔수 없이 순회를 하면서 데이터를 접근해야 하는데 O(n) 이라는 시간이 필연적이다.
하루에 수십억건 데이터를 처리해야하는 HFT 리서치 시스템의 특성상 파이썬의 for loop를 사용하는 방법은 너무 느리다.