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는 말일 계산에 매우 유용합니다. 윤년, 월별 날짜 수 등도 자동으로 처리해줘서 매우 편리합니다. 오늘도 읽어주셔서 감사합니다.