Study/Python
[Python/Pandas] 날짜값으로 그달의 말일 구하기 (MonthEnd)
Super-Son
2025. 4. 3. 00:11
파이썬으로 날짜를 다룰 때는 datetime 모듈도 있지만, 더 유연하고 강력한 기능을 원한다면 pandas의 시간 도구를 추천합니다. 오늘은 pandas의 MonthEnd를 사용해서 특정 날짜가 속한 달의 마지막 날(말일) 을 구하는 방법을 알아볼게요.
🧩 코드 예시
import pandas as pd
start_date = pd.Timestamp('2024-03-15') # 3월 15일
end_date = start_date + pd.offsets.MonthEnd(0) # 3월 31일이 됨
print(end_date) # 2024-03-31
start_date = pd.Timestamp('2024-02-01') # 2월 1일
end_date = start_date + pd.offsets.MonthEnd(0) # 2월 29일이 됨 (윤년)
print(end_date) # 2024-02-29
💡 코드 설명
pd.Timestamp()
- 문자열로 날짜를 지정해 pandas의 타임스탬프 객체를 생성합니다.
- 예: '2024-03-15' → 2024년 3월 15일
pd.offsets.MonthEnd()
날짜가 속한 달의 말일 뿐만 아니라 다음달, 이전달의 말일도 구할 수 있는 오프셋입니다.
import pandas as pd
date = pd.Timestamp('2024-03-15')
print(date + pd.offsets.MonthEnd(0)) # 2024-03-31 (현재 달 말일)
print(date + pd.offsets.MonthEnd(1)) # 2024-04-30 (다음 달 말일)
print(date + pd.offsets.MonthEnd(-1)) # 2024-02-29 (이전 달 말일)
🛠 활용 예시: 급여 정산 날짜 계산
매달 말일에 직원 급여를 정산해야 하는 회사라면 아래처럼 코드를 작성해 어떤 날짜가 들어와도 해당 달의 말일을 자동으로 계산할 수 있습니다.
def get_salary_date(date_str):
date = pd.Timestamp(date_str)
return date + pd.offsets.MonthEnd(0)
print(get_salary_date('2025-01-10')) # 2025-01-31
print(get_salary_date('2025-02-05')) # 2025-02-28
pandas의 MonthEnd는 말일 계산에 매우 유용합니다. 윤년, 월별 날짜 수 등도 자동으로 처리해줘서 매우 편리합니다. 오늘도 읽어주셔서 감사합니다.