날짜 및 시간 작업을 위한 10가지 파이썬(Python)의 유용하고 간단한 한 줄짜리 코드 (One-Liners)
- Frank So
- 5일 전
- 3분 분량
시간 데이터는 어디에나 존재합니다. 금융 거래부터 센서 로그까지, 날짜를 나타내는 날짜나 정확한 시점을 나타내는 타임스탬프(timestamp)처럼 시간을 나타내는 데이터가 실제 데이터셋에 널리 퍼져 있는 애플리케이션은 수많이 있습니다. 파이썬(Python)에는 날짜와 시간이 포함된 데이터에 대한 다양한 연산, 전처리 및 분석을 수행할 수 있는 풍부한 내장 기능과 라이브러리가 포함되어 있습니다.

이 글에서는 일반적인 날짜 및 시간 작업을 효율적이고 간결하게 처리하는 10가지 Python의 유용하고 간단한 한 줄짜리 코드들(one-liners)을 소개합니다.
이러한 한 줄짜리 코드 중 일부는 코드 시작 부분에 다음과 같은 import가 필요합니다.
1. ISO 8601 형식의 현재 타임스탬프(timestamp)
자연스럽지 않아 보일지 모르지만, 타임스탬프 형식을 지정하는 ISO 8601 표준은 모호성이 낮고 기계가 읽을 수 있는 형식이며, 무엇보다도 GraphQL 및 RESTful 서비스와 같은 많은 최신 API에서 사용하기 때문에 매우 유용합니다. 이 표준은 날짜/시간 데이터의 시간대를 인식할 수 있도록 설정할 수도 있습니다.
ISO 8601 형식으로 현재 시간을 설명하는 타임스탬프를 얻는 방법은 다음과 같습니다.
2. 문자열을 DateTime 객체로 구문 분석하고 변환하기
이것은 매우 일반적으로 필요한 데이터 변환 유형입니다. "시간으로 구문 분석된 문자열"을 의미하는 datetime.strptime() 날짜 함수는 두 개의 인수를 받습니다. 하나는 변환할 날짜가 포함된 문자열이고, 다른 하나는 전체 날짜의 구성 요소가 입력 문자열에 어떻게 표시되는지 나타내는 형식 템플릿입니다. 이는 연도, 월, 일, 시 등의 요소를 정확하게 해석하는 데 도움이 됩니다.
다음 예제는 문자열 "2025-06-20"을 날짜와 연결된 datetime 객체인 2025년 6월 20일로 구문 분석합니다.
예를 들어, parsed_date.day을 실행해 보세요 . 파싱된 날짜에서 해당 월의 일(day)자인 20이 나와야 합니다.
3. 주어진 날짜에 X일을 더하기
timedelta 함수를 사용하면 주어진 날짜 또는 datetime 객체 에 시간 경과를 더하거나 뺄 수 있습니다. 예를 들어, 이 함수는 일수를 지정하는 인수를 받고, 주어진 날짜(예: 오늘)를 기준으로 해당 일수만큼 시간 계산을 하는 데 사용할 수 있습니다.
예를 들어, 현재 날짜에서 7일을 앞당기는 방법은 다음과 같습니다.
4. 두 날짜 사이의 일수 차이 계산
시간적으로 다소 차이가 있는 두 개의 서로 다른 날짜를 나타내는 두 개의 Python date 객체를 생각해 보겠습니다. 예를 들어, 누군가의 생일과 그 해 마지막 날이 있습니다. 두 날짜 사이의 자연일 차이를 계산하려면 두 객체를 뺀 후, 아래와 같이 결과의 days 속성에 접근하면 됩니다.
결과는 단일 정수 값이며, 이 경우 185일입니다.
5. 팬더스(Pandas)를 사용하여 5일 연속 날짜 범위 생성
0 부터 n-1 까지의 정수 범위를 정의하는 range(n)의 네이티브 Python과 유사하게, 데이터 분석, 전처리 및 랭글링(wrangling)에 강력하고 다재다능한 Pandas 라이브러리는 지정된 날짜부터 시작하여 일 단위로 연속된 날짜 범위를 정의하는 함수를 제공합니다. 결과 범위는 아래와 같이 간단한 목록과 같은 네이티브 Python 컬렉션에 쉽게 넣을 수 있습니다.
중요한 점은 이 리스트의 결과 요소가 Pandas의 Timestamp 객체로 모델링된다는 것입니다.
[Timestamp('2025-01-01 00:00:00'), Timestamp('2025-01-02 00:00:00'), Timestamp('2025-01-03 00:00:00'), Timestamp('2025-01-04 00:00:00'), Timestamp('2025-01-05 00:00:00')]
6. 문자열 열을 데이터 셋의 datetime 속성으로 변환
이 함수 역시 Pandas와 관련이 있는데, 여러 속성으로 기술되고 DataFrame 객체에 포함된 데이터셋에 대한 함수입니다. 문자열로 구성된 'date' 속성을 포함하는 df 라는 DataFrame이 있다고 가정해 보겠습니다 . 이 매우 간단한 한 줄짜리 함수는 이 속성에 속하는 모든 인스턴스 수준 값을 datetime 객체로 자동 변환합니다.
결과를 출력하면 다음과 같은 값이 나올 수 있으며, 여기서는 유형이 실제로 검증되었습니다.
0 2025-01-01
1 2025-01-02
2 2025-01-03
Name: date, dtype: datetime64[ns]
7. 날짜에서 요일 이름(서수가 아님!) 얻기
이 한 줄짜리 코드는 웹 기반 애플리케이션 등에서 사용하기 편리한 GUI(Graphical User Interface)를 구축하는 데 특히 유용합니다. 오늘의 요일을 표시하되, 1부터 7까지의 요일 순서는 표시하지 않고 Monday(월요일), Tuesday(화요일), Wednesday(수요일) 등 요일 자체만 표시하고 싶다고 가정해 보겠습니다. strftime("%A") 서식 속성을 사용하면 됩니다.
방법은 다음과 같습니다.
8. 넘파이(NumPy)를 사용하여 월별 날짜 배열 만들기
매일 기록되는 시계열 데이터(예: 일일 기온 측정값)를 처리하고 있다고 가정해 보겠습니다. 어느 시점에 데이터를 월별 평균으로 집계하기로 했습니다. 시각화 등을 통해 새로 집계된 데이터에 적절한 라벨(label)을 지정하기 위해 관련 월별 타임스탬프 그룹을 확보해야 할 수도 있습니다.
예를 들어 1월부터 5월까지의 월별 "라벨(label)"에 대한 방법은 다음과 같습니다.
결과는 다음과 같습니다:
['2025-01' '2025-02' '2025-03' '2025-04' '2025-05']
9. 날짜 조건으로 DataFrame 행 필터링
여러 속성으로 기술된 데이터 세트의 시나리오로 돌아가서, 그 중 하나가 날짜 속성인 경우, 날짜 속성에 대한 boolean 조건이 성립하는 인스턴스를 가져와서 DataFrame의 행별 부분을 추출합니다.
이 예제에서는 날짜 가 2025년 1월 15일 이후 인 데이터 인스턴스(전체 행)를 선택합니다 .
10. datetime 객체에서 Unix 타임스탬프 가져오기
대부분의 예시에서는 간단하게 일 단위의 데이터 세분성을 고려했습니다. 이번에는 시, 분, 초 단위 정보를 명시한 훨씬 더 세부적이고 상세한 datetime 객체로 마무리해 보겠습니다.
2025년 5월 10일 오후 3시 30분 45초의 날짜를 입력으로 하는 이 예시는 특정 시점을 숫자로 표현한 유닉스 타임스탬프를 얻습니다. 이는 일반적으로 다양한 시스템 간의 시간 기반 데이터의 효율적인 저장, 비교 및 동기화에 매우 유용합니다. 우리가 해석하기는 어렵지만, 기계가 해석하기는 매우 쉽습니다.
타임스탬프는 원래 부동 소수점(예시에서는 1746891045.0)이지만 표현의 편의를 위해 정수로 변환되었습니다.