“10 minutes to pandas” 문서를 따라해보며 작성했습니다.
https://pandas.pydata.org/pandas-docs/stable/user_guide/10min.html
2022. 02. 02 최초작성
2022. 3. 20
샘플링
특정 주기로 샘플링된 데이터를 원하는 주기로 리샘플링을 할 수 있습니다.
import numpy as np import pandas as pd # 2022년 1월 1일 0시 0분 0초부터 1초 간격으로 20개를 생성합니다. rng = pd.date_range("1/1/2022", periods=20, freq="S") print(rng) print('\n\n') # 앞에서 생성한 시간정보를 인덱스로 하여 0 ~ 10 사이의 숫자를 20개 생성합니다. ts = pd.Series(np.random.randint(0, 10, len(rng)), index=rng) print(ts) print('\n\n') # sum 메소드를 사용하여 2초 간격으로 리샘플링합니다. 예를 들어 0초, 1초 값을 더해서 0초의 값으로, 2초, 3초 값을 더해서 2초의 값으로 ... 사용합니다. ts_new = ts.resample("2s").sum() print(ts_new) print('\n\n') # first 메소드를 사용하여 2초 간격으로 리샘플링합니다. 예를 들어 0초, 1초 중 0초의 값을 사용하고, 2초, 3초 값 중 2초의 값을 사용하고 ... 사용합니다. ts_new = ts.resample("2s").first() print(ts_new) 실행 결과 DatetimeIndex(['2022-01-01 00:00:00', '2022-01-01 00:00:01', '2022-01-01 00:00:02', '2022-01-01 00:00:03', '2022-01-01 00:00:04', '2022-01-01 00:00:05', '2022-01-01 00:00:06', '2022-01-01 00:00:07', '2022-01-01 00:00:08', '2022-01-01 00:00:09', '2022-01-01 00:00:10', '2022-01-01 00:00:11', '2022-01-01 00:00:12', '2022-01-01 00:00:13', '2022-01-01 00:00:14', '2022-01-01 00:00:15', '2022-01-01 00:00:16', '2022-01-01 00:00:17', '2022-01-01 00:00:18', '2022-01-01 00:00:19'], dtype='datetime64[ns]', freq='S') 2022-01-01 00:00:00 5 2022-01-01 00:00:01 5 2022-01-01 00:00:02 8 2022-01-01 00:00:03 6 2022-01-01 00:00:04 2 2022-01-01 00:00:05 2 2022-01-01 00:00:06 7 2022-01-01 00:00:07 8 2022-01-01 00:00:08 6 2022-01-01 00:00:09 7 2022-01-01 00:00:10 0 2022-01-01 00:00:11 0 2022-01-01 00:00:12 3 2022-01-01 00:00:13 4 2022-01-01 00:00:14 1 2022-01-01 00:00:15 5 2022-01-01 00:00:16 1 2022-01-01 00:00:17 1 2022-01-01 00:00:18 7 2022-01-01 00:00:19 8 Freq: S, dtype: int64 2022-01-01 00:00:00 10 2022-01-01 00:00:02 14 2022-01-01 00:00:04 4 2022-01-01 00:00:06 15 2022-01-01 00:00:08 13 2022-01-01 00:00:10 0 2022-01-01 00:00:12 7 2022-01-01 00:00:14 6 2022-01-01 00:00:16 2 2022-01-01 00:00:18 15 Freq: 2S, dtype: int64 2022-01-01 00:00:00 5 2022-01-01 00:00:02 8 2022-01-01 00:00:04 2 2022-01-01 00:00:06 7 2022-01-01 00:00:08 6 2022-01-01 00:00:10 0 2022-01-01 00:00:12 3 2022-01-01 00:00:14 1 2022-01-01 00:00:16 1 2022-01-01 00:00:18 7 Freq: 2S, dtype: int64 |
시간대(Time zone)
import numpy as np import pandas as pd # 2022년 1월 1일 0시 0분 부터 일 간격으로 5개를 생성합니다. rng = pd.date_range("1/1/2022 02:00", periods=5, freq="D") print(rng) print() # 앞에서 생성한 시간정보를 인덱스로 하여 무작위 숫자를 5개 생성합니다. ts = pd.Series(np.random.randn(len(rng)), rng) print(ts) print() # UTC 시간대로 설정합니다. ts_utc = ts.tz_localize("UTC") print(ts_utc) print() # 다른 시간대로 변경합니다. # 11:00:00은 서울 시간대로 11시라는 의미이며 # +09:00은 서울 시간대는 UTC 시간 + 9라는 의미입니다. print(ts_utc.tz_convert('Asia/Seoul')) |
시간 범위 표현 간 변환
import numpy as np import pandas as pd # 2022년 1월 1일부터 한달 단위로 5개의 날짜를 생성합니다. rng = pd.date_range("1/1/2022", periods=5, freq="M") print(rng) print() # 앞에서 생성한 시간정보를 인덱스로 하여 숫자 5개를 생성합니다. ts = pd.Series(np.arange(len(rng)), index=rng) print(ts) print() # 날짜를 한달 간격으로 변경합니다. ps = ts.to_period(freq='M') print(ps) print() # 날짜를 매달의 첫날로 변경합니다. print(ps.to_timestamp()) |
Pandas 강좌 1 - Pandas 객체 생성
https://webnautes.tistory.com/1957
Pandas 강좌 2 - 데이터 보는 방법
https://webnautes.tistory.com/1958
Pandas 강좌 3 - 데이터 선택하는 방법
https://webnautes.tistory.com/1959
Pandas 강좌 4 - 연산(Operations)
https://webnautes.tistory.com/1960
Pandas 강좌 5 - 연결 및 그룹핑
https://webnautes.tistory.com/1961
Pandas 강좌 6 - 시계열(Time series)
https://webnautes.tistory.com/1962
Pandas 강좌 7 - 그래프 그리기(Plotting)
https://webnautes.tistory.com/1963
Pandas 강좌 8 - Pandas에서 CSV, HDF5, Excel로 저장 및 읽기
https://webnautes.tistory.com/1964
Pandas 강좌 9 - 결측치(Missing data)
https://webnautes.tistory.com/1965
'Python > Pandas' 카테고리의 다른 글
Pandas 강좌 8 - Pandas에서 CSV, HDF5, Excel로 저장 및 읽기 (0) | 2023.10.12 |
---|---|
Pandas 강좌 7 - 그래프 그리기(Plotting) (0) | 2023.10.12 |
Pandas 강좌 5 - 연결 및 그룹핑 (0) | 2023.10.12 |
Pandas 강좌 4 - 연산(Operations) (0) | 2023.10.12 |
Pandas 강좌 2 - 데이터 보는 방법 (0) | 2023.10.12 |
시간날때마다 틈틈이 이것저것 해보며 블로그에 글을 남깁니다.
블로그의 문서는 종종 최신 버전으로 업데이트됩니다.
여유 시간이 날때 진행하는 거라 언제 진행될지는 알 수 없습니다.
영화,책, 생각등을 올리는 블로그도 운영하고 있습니다.
https://freewriting2024.tistory.com
제가 쓴 책도 한번 검토해보세요 ^^
그렇게 천천히 걸으면서도 그렇게 빨리 앞으로 나갈 수 있다는 건.
포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!