👩‍💻 Develope/Python

[Pandas] 데이터 프레임 날짜 다루기

heywantodo 2023. 12. 19. 16:59
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'")

 

참고

https://zephyrus1111.tistory.com/98

https://kibua20.tistory.com/195

728x90
반응형