주차(weeknum)와 요일(weekday) 정보만으로 년, 월, 일을 구하려면 기준 날짜를 알고 있어야 합니다. 이 기준 날짜는 연도의 시작일인 1월 1일로 설정할 수 있습니다. 다음은 주차와 요일 정보로 년, 월, 일을 계산하는 방법에 대한 설명과 예제 코드입니다.
주차(weeknum)와 요일(weekday) 정보 얻기
먼저, 주차와 요일 정보를 얻어야 합니다. 1월 1일을 기준으로 주차와 요일을 얻을 수 있습니다.
import datetime
# 기준 날짜 (1월 1일)
base_date = datetime.date(today.year, 1, 1)
# 주차 정보 얻기 (주차, 요일 번호)
week_info = base_date.isocalendar()
week_number = week_info[1] # 주차
day_of_week = week_info[2] # 요일 번호 (1: 월요일, 2: 화요일, ..., 7: 일요일)
주차와 요일 정보를 이용한 년, 월, 일 계산
주어진 주차와 요일 정보를 기준으로 년, 월, 일을 계산합니다.
# 목표 주차와 요일 (예: 5주차의 화요일)
target_week = 5
target_day_of_week = 2 # 화요일
# 현재 주차와 요일 정보
week_info = base_date.isocalendar()
current_week_number = week_info[1]
current_day_of_week = week_info[2]
# 목표 날짜 찾기
while current_week_number != target_week or current_day_of_week != target_day_of_week:
base_date += datetime.timedelta(days=1) # 하루씩 다음 날짜로 이동
week_info = base_date.isocalendar()
current_week_number = week_info[1]
current_day_of_week = week_info[2]
# 찾은 날짜에서 년, 월, 일 추출
target_year = base_date.year
target_month = base_date.month
target_day = base_date.day
예제 (1월 1일 기준)
예를 들어, 1월 1일을 기준으로 5주차의 화요일을 구하려면 다음과 같이 코드를 작성할 수 있습니다.
import datetime
# 기준 날짜 (1월 1일)
base_date = datetime.date(2023, 1, 1)
# 목표 주차와 요일
target_week = 5
target_day_of_week = 2 # 화요일
# 현재 주차와 요일 정보
week_info = base_date.isocalendar()
current_week_number = week_info[1]
current_day_of_week = week_info[2]
# 목표 날짜 찾기
while current_week_number != target_week or current_day_of_week != target_day_of_week:
base_date += datetime.timedelta(days=1) # 하루씩 다음 날짜로 이동
week_info = base_date.isocalendar()
current_week_number = week_info[1]
current_day_of_week = week_info[2]
# 찾은 날짜에서 년, 월, 일 추출
target_year = base_date.year
target_month = base_date.month
target_day = base_date.day
이렇게 하면 target_year
, target_month
, target_day
에는 2023년 1월 31일(5주차의 화요일)에 해당하는 년, 월, 일 값이 저장됩니다.
[Python] 28. Pandas 데이터프레임 Rank 함수 사용하기
Pandas의 rank() 함수는 데이터프레임 또는 시리즈의 요소를 순위로 변환하는 데 사용되며, 주어진 데이터에서 각 요소의 순서를 확인하는 데 도움을 줍니다. 이 함수는 정렬된 순서대로 순위를 매기거나 사용자 지정 순위 메서드를 지원합니다. rank() 함수의 일반적인 사용법과 예제를 알아보겠습니다.…