python pandas datetime 변환 작업을 numpy로 더 빠르게 하는 방법
조회수 731회
df["click"]의 데이터는 아래와 같이 문자열로 yyyymmddHHMMSS 형태입니다.
["20211122000000", "20211122000000", "20211122000000", "20211122000000" ...]
datetime 값으로 변환하기 위해서 아래 코드를 사용중입니다.
df["click"] = df["click"].apply(pd.to_datetime, errors="coerce")
그런데 DataFrame의 행수가 100만 줄이 넘어가니까 너무 느리더라구요. 혹시 numpy를 활용해서 해당 문자열 데이터를 datetime(yyyy-mm-dd HH:MM:SS)으로 변환할 수 있을까요?
혹은 numpy가 아니더라도 제가 사용중인 소스보다 더 빠른 방법이 뭐가 있을까요? DataFrame은 PySpark, Koalas, Dask 를 쓸 수 없는 환경이라서 Pandas입니다.
1 답변
-
pd.to_datetime
는 시리즈를 인자로 받을 수 있어요.df["click_dt"] = pd.to_datetime(df["click"], error="coerce")
시간문자열의 포맷이 일정하다면,
format
인자를 고정해 주면, 어떤 포맷인지pd.to_datetime
이 고민하지 않을테니, 더 빨라질 것 같아요. 질문하신 포맷이라면 아마 아래 코드처럼.df["click_dt"] = pd.to_datetime(df["click"], format="%Y%m%d%H%M%S", error="coerce")
댓글 입력