[Pandas] 시간데이터 만들기(date_range)
- Python/Pandas
- 2021. 5. 3.
판다스로 시간데이터를 만들어 보겠습니다.
어디서 데이터를 가져오는 게 아니고 직접 만들어서 하는 방법입니다.
타임시리즈 데이터로써 데이터를 다루고 싶을 때 쓰면 유용한데
date_range() 함수를 쓰면 시간데이터를 만들 수 있습니다.
dates = pd.date_range('2020-1-1',periods=6,freq='M')
이렇게 간단히 만들 수 있습니다.
타입은 datetime64로 만들어집니다.
파라미터
date_range()의 파라미터는 다음과 같습니다.
파라미터 | 포맷 | 기능 |
start | string/datetime | 데이터의 시작시간을 지정 |
end | string/datetime | 데이터의 끝시간을 지정 |
periods | integer/None | 기간의 수를 지정 |
freq | stgring/Dateoffset | 일/월/년별 지정 ex) 5D는 5일씩 |
normalize | bool, default None | start나 end에 쓴 시간대를 자정으로 변경 |
name | string,default None | 인덱스 이름 설정 |
tz | string/None | 시간대(time zone) 설정 |
closed | None,left,right | 범위 포함여부 |
조심해야하는 건 start, end, periods,freq는 같이 쓸수가 없습니다.
4개의 파라미터를 동시에 쓰면 오류가 발생합니다.
dates = pd.date_range('2020-1-1','2020-10-01',periods=10,freq='M')
start,end, periods 조합은 가능한데 periods에 맞게 임의로 맞춰줍니다.
dates = pd.date_range('2020-1-1','2020-10-01',periods=10)
dates
tz는 어느 위치에 있는 시간대를 쓸건지 설정할 수 있는데 대륙/나라 로 보통 표기를 합니다.
만약 'Asia/Hong_Kong' 으로 설정하면 홍콩에서의 시간으로 변경됩니다.
아무 입력이 없으면 현위치로 설정됩니다.
tz는 time zone 모듈인 pytz로 찾아낼 수 있습니다. 추후에 기회가 된다면 포스팅을 하겠습니다.
closed는 {None,left,right}로 구성되어 있고 디폴트는 None입니다.
start,end와 같이 쓰이는데요.
end 날짜를 제외하고 싶으면 left,
strart 날짜를 제외하고 싶으면 right 를 입력합니다.
dates = pd.date_range('2020-1-1','2020-10-01',freq='MS',closed='left')
dates
freq 값
freq가 가능한 값이 굉장히 다양합니다. 초부터 년까지 다 다룰수 있습니다.
월별의 경우 첫째날로 할것인지 끝날로 할것인지 정할 수 있고
비즈니스 데이라고 해서 공휴일을 제외한 평일로 자동으로 할 수 있어서 유용하게 쓸수 있습니다.
B | 비즈니스 데이 |
C | 커스텀 비즈니스 데이 |
D | 일별 |
W | 주별 |
M | 월별 말일 |
BM | 비즈니스 월별 |
MS | 월별 시작일 |
BMS | 비즈니스 월별 시작일 |
Q | 분기별 말일 |
BQ | 비즈니스 분기별 |
QS | 쿼터 시작일 |
BQS | 비지니스 분기 시작일 |
A | 연도별 말일 |
BA | 비즈니스 연도별 말일 |
AS | 연도별 시작일 |
BAS | 비즈니스 연도별 시작일 |
H | 시간별 |
T | 분별 |
S | 초별 |
L | 밀리초(Milliseconds) |
U | 마이크로초(Microseconds) |
다른것도 있겠지만 date_range()의 특징은 3D(3일씩 건너띄기) 이런게 가능합니다.
dates = pd.date_range('2020-1-1','2020-10-01',freq='3D')
dates
freq을 잘 써서 그에 맞게 하는것으로 시간 인덱스를 구성하는 것으로 마무리를 할 수 있습니다.
관련포스팅
[Python/Pandas] - [Pandas] 시간 데이터 처리
'Python > Pandas' 카테고리의 다른 글
[Pandas] 데이터프레임 합치기(append,concat) (0) | 2021.05.07 |
---|---|
[Pandas] 같은 범주로 묶기(groupby) (0) | 2021.05.06 |
[Pandas] 데이터프레임 엑셀(xlsx) 저장, 불러오기 (0) | 2021.04.17 |
[Pandas] 원하는 값으로 필터링 (0) | 2021.04.11 |
[Pandas]데이터프레임 순회하기 (0) | 2021.04.10 |