판다 날짜를 주 번호로 변환
판다 데이터 프레임의 데이터에서 주 번호를 추출하고 싶습니다.
날짜 형식은 datetime64[ns]입니다.
날짜에서 시간을 제거하기 위해 날짜를 정규화했습니다.
df['Date'] = df['Date'].apply(pd.datetools.normalize_date)
이제 날짜는 데이터 프레임 열에서 - 2015-06-17과 같습니다.
이제 저는 그것을 주 번호로 변환하고 싶습니다.
Series.dt.iscalendar()의 week 속성에 액세스하기만 하면 됩니다.
예:
In [286]:
df['Date'].dt.isocalendar().week
Out[286]:
0 25
dtype: int64
In [287]:
df['Week_Number'] = df['Date'].dt.isocalendar().week
df
Out[287]:
Date Week_Number
0 2015-06-17 25
를 사용할 수 있는 또 다른 가능성은 좋은 리소스입니다.
df['Week_Number'] = df['Date'].dt.strftime('%U')
'%U'
연도의 주 번호(일요일은 주의 첫 번째 요일)를 제로 패딩 십진수로 나타냅니다.첫 번째 일요일 이전의 새해의 모든 날은 0주로 간주됩니다.
여러 해의 날짜가 있는 경우 년-주 조합을 만드는 것이 좋습니다.
df['Year-Week'] = df['Date'].dt.strftime('%Y-%U')
판다도 있습니다..dayofyear
그리고..weekofyear
의 출력에 바로 적용할 수 있는 기능성pandas.to_datetime(df['column_name'])
출력으로 "타임 스탬프" 유형을 지정합니다.
import pandas as pd
df['formatted_date'] = pd.to_datetime(df['datetime'])
df['day_of_year'] = df.formatted_date.apply(lambda x: x.dayofyear)
df['week_of_year'] = df.formatted_date.apply(lambda x: x.weekofyear)
from datetime import date
df_date = pd.DataFrame([date.today()],columns = ['today'])
print(df_date)
#### Print Output ####
# today
#0 2019-09-07
df_date['weeknum'] = df_date.today.apply(lambda x:x.isocalendar()[1])
print(df_date)
#### Print Output ####
# today weeknum
#0 2019-09-07 36
이 답변으로 업데이트
현재 내 파이썬 버전(3.7, 2021년 5월)에서.구문df['Date'].dt.week
는 다음 경고를 인쇄하고 있습니다.FutureWarning: weekofyear and week have been deprecated, please use DatetimeIndex.isocalendar().week instead
Datetime 사용 방법인덱스는 다음과 같습니다.df['week_number'] = pd.DatetimeIndex(df.index).isocalendar().week
시리즈를 반환하는 데 사용하는 방법에 대한 작은 데모입니다.
# Input
time_idx = pd.date_range('2022-01-01', periods=4, freq='H').tz_localize('UTC')
values = [9 , 8, 7, 6]
df1 = pd.DataFrame(data = values, index=time_idx, columns=['vals'])
# FutureWarning: weekofyear and week have been deprecated
df1['week_number'] = df1.index.week
# Using DatetimeIndex.isocalendar().week instead
df2 = pd.DataFrame(data = values, index=time_idx, columns=['vals'])
# Does not throws a warning
df2['week_number'] = pd.DatetimeIndex(df2.index).isocalendar().week
print(df2)
판다의 경우:
import random
import pandas as pd
desired_length = 100
desired_frequency="20D" # XXXM: XXX months, "XXXD":XXX days, XXXMin: XXX minutes etc.
index = pd.date_range('2020-01-01', periods=desired_length, freq=desired_frequency)
data = [random.random() for _ in range(len(index))]
df = pd.DataFrame(data=data, index=index, columns=['DATA'])
df[df.index.isocalendar().keys()] = df.index.isocalendar()
언급URL : https://stackoverflow.com/questions/31181295/converting-a-pandas-date-to-week-number
'prosource' 카테고리의 다른 글
datetime picker의 기본 형식을 dd-MM-yyyy로 설정합니다. (0) | 2023.05.28 |
---|---|
wpf ComboBox DisplayMemberPath, SelectedValue 및 SelectedValuePath와 혼동됨 (0) | 2023.05.28 |
매트플롯립으로 선을 긋는 방법은? (0) | 2023.05.28 |
App.settings - Angular way? (0) | 2023.05.28 |
마이크로소프트.Windows Azure.스토리지 대 마이크로소프트.Windows Azure.스토리지 클라이언트 (0) | 2023.05.28 |