728x90
[Pandas] 데이터 프레임 날짜 다루기
날짜 생성하기
pandas에서 제공하는 date_range를 사용하면 날짜를 생성 할 수 있다.
date_range(start='시작 날짜', end='마지막 날짜', freq='단위', ... )
freq의 경우 일 단위로 생성할 것인지 월 단위로 생성할 것인지를 정해준다. (D: 일 단위/ M: 월 단위/Y: 연 단위)
예를 들어 2023년 1월 1일부터 2023년 12월 30일까지의 날짜를 생성해보자
start_date = pd.to_datetime('2023-01-01')
end_date = pd.to_datetime('2023-12-31')
dates = pd.date_range(start_date, end_date, freq='D')
월 단위로도 생성이 가능하다.
dates = pd.date_range(start_date, end_date, freq='M')
기존 데이터 프레임의 index로 사용하기 위해선 df.index를 사용하면 된다.
예를 들어 매월 말 수학시험과 영어시험을 친다고 가정했을 때의 점수 데이터 프레임을 생성해보자
math = [randint(50, 100) for i in range(0, 12)]
english = [randint(50, 100) for i in range(0, 12)]
dic = {"math":math, "english":english}
df = pd.DataFrame(dic)
df.index = dates
다음과 같이 인덱스로 사용할 수 있으며, 데이터프레임의 새로운 컬럼으로 추가도 가능하다.
df['dates'] = dates
날짜 기준으로 데이터 조회
만약 데이터 프레임을 날짜 기준으로 조회를 하고싶다면 여러가지 방법이 있다.
1. isin() & date_range() 사용
df[df['dates'].isin(pd.date_range('2023-01-01','2023-03-01'))]
2. between() 사용
df[df['dates'].between('2023-03-01', '2023-05-01')]
3. query() 사용
df.query("dates >= '2023-08-01' and dates <='2023-11-01'")
참고
반응형
'👩💻 Develope > Python' 카테고리의 다른 글
[Pandas] 컬럼 데이터 값 분리하기 (str.split, str.get) (1) | 2023.12.21 |
---|---|
[Pandas] group by 했을 때 key외의 다른 컬럼 나오게하기 (1) | 2023.12.20 |
[Python] Yaml 파일 불러오기 (0) | 2023.12.14 |
[Python] SQLAlchemy (0) | 2023.12.13 |
[Python] 이차원 리스트 출력하기 (1) | 2023.12.07 |