Pandas 에서 DataFrame 열을 Datetime 으로 변환하는 방법
-
DataFrame 열을 datetime 으로 변환하는 Pandas
to_datetime
함수 -
DataFrame 열을 Datetime 으로 변환하는
DataFrame.apply
메서드 - DataFrame 열을 날짜 / 시간 성능 비교로 변환하는 방법
Pandas DataFrame 열을 Python datetime 으로 변환하는 메소드를 소개합니다.
Pandas to_datetime()
함수
- 열의 요소에서 작동하는 DataFrame ‘적용’방법
이 기사에서는 아래에서 동일한 DataFrame 을 사용합니다.
>>> from datetime import datetime, timedelta
>>> from pandas import DataFrame
>>> df = DataFrame.from_items(
[('Alfa', [1, 2, 3]),
('Bravo', [4, 5, 6]),
('Datetime', [datetime.strftime(datetime.now()-timedelta(days=_), "%m/%d/%Y, %H:%M:%S") for _ in range(3)])],
orient='index',
columns=['A', 'B', 'C']).T
>>> df
Alfa Bravo Datetime
A 1 4 12/07/2019, 14:08:55
B 2 5 12/06/2019, 14:08:55
C 3 6 12/05/2019, 14:08:55
DataFrame 열을 datetime 으로 변환하는 Pandas to_datetime
함수
Pandas to_datetime
함수는 주어진 인수를 datetime
으로 변환합니다.
pandas.to_datetime(param, format="")
형식은 날짜 시간 문자열의 패턴을 지정합니다. 파이썬 datetime
모듈의 stftime
또는 strptime
의 형식과 동일합니다.
>>> df
Alfa Bravo Datetime
A 1 4 12/07/2019, 14:08:55
B 2 5 12/06/2019, 14:08:55
C 3 6 12/05/2019, 14:08:55
>>> df['Datetime'] = pd.to_datetime(df['Datetime'], format="%m/%d/%Y, %H:%M:%S")
>>> df
Alfa Bravo Datetime
A 1 4 2019-12-07 14:08:55
B 2 5 2019-12-06 14:08:55
C 3 6 2019-12-05 14:08:55
to_datetime()
함수는 DataFrame
데이터를 그 자리에서 수정하지 않으므로 반환 된 Pandas Series
를 특정 DataFrame
열에 할당해야합니다.
to_datetime()
함수가 Datetime 으로 변환하는 것이 현명하다
to_datetime()
함수는 datetime
형식 문자열없이 스마트 한 방식으로 datetime
으로 변환 할 수 있습니다. 문자열 패턴을 자동으로 스마트하게 찾습니다.
>>> df['Datetime'] = pd.to_datetime(df['Datetime'])
>>> df
Alfa Bravo Datetime
A 1 4 2019-12-07 14:08:55
B 2 5 2019-12-06 14:08:55
C 3 6 2019-12-05 14:08:55
to_datetime
은 format
을 현명하게 부여하지 않고도 작업을 수행 할 수 있지만 변환 속도는 format
을 지정할 때보 다 훨씬 느립니다.
to_datetime
의 infer_datetime_format
옵션을 True
로 설정하여 format
문자열을 제공하지 않고 datetime 문자열의 형식을 유추 할 수있는 경우 변환을 더 빠른 모드로 전환 할 수 있습니다.
파싱 속도를 5 ~ 6 배 높일 수 있습니다.
DataFrame 열을 Datetime 으로 변환하는 DataFrame.apply
메서드
apply(func, *args, **kwds)
DataFrame 의 apply
메소드는 func
함수를 각 열이나 행에 적용합니다.
단순함을 위해 func
대신 lambda
함수를 사용할 수 있습니다.
>>> df['Datetime'] = df['Datetime'].apply(lambda _: datetime.strptime(_,"%m/%d/%Y, %H:%M:%S"))
>>> df
Alfa Bravo Datetime
A 1 4 2019-12-07 14:44:35
B 2 5 2019-12-06 14:44:35
C 3 6 2019-12-05 14:44:35
DataFrame 열을 날짜 / 시간 성능 비교로 변환하는 방법
이 기사에서 소개 된 두 가지 방법의 타이밍 성능을 비교하기 위해 timeit
을 사용하자.
In [1]: %timeit pd.to_datetime(df['Datetime'], format="%m/%d/%Y, %H:%M:%S")
452 µs ± 85.3 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
In [2]: %timeit df['Datetime'].apply(lambda _: datetime.strptime(_,"%m/%d/%Y, %H:%M:%S"))
377 µs ± 58.5 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)
apply
메소드는 Pandas 기본 to_datetime
메소드보다 약간 우수하며 to_datetime
함수 실행 시간의 약 80 %가 있습니다.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook관련 문장 - Pandas DataFrame
- Pandas DataFrame 열 헤더를 목록으로 가져 오는 방법
- Pandas DataFrame 열을 삭제하는 방법
- Pandas DataFrame에서 float를 정수로 변환하는 방법
- 한 열의 값으로 Pandas DataFrame 을 정렬하는 방법
- Pandas 그룹 및 합계를 집계하는 방법
관련 문장 - Pandas DataFrame Column
- Pandas DataFrame 열 헤더를 목록으로 가져 오는 방법
- Pandas DataFrame 열을 삭제하는 방법
- Pandas 열의 합계를 얻는 방법
- Pandas DataFrame 열의 순서를 변경하는 방법
- Pandas에서 DataFrame 열을 문자열로 변환하는 방법