코딩/pandas, matplotlib

[python + pandas] 데이터프레임에서 특정 기간의 데이터 추출하기

비스카이비전 2022. 6. 21. 08:24

안녕하세요. 비스카이비전입니다. 오늘은 데이터프레임에서 특정 기간의 데이터만 추출하는 방법에 대해 알아보도록 하겠습니다. 

 

데이터프레임에서 특정 기간의 데이터만 추출하기

결론부터 말씀드리면 판다스 시리즈 객체의 between 메소드를 활용하면 됩니다. SQL에 익숙한 분들은 '판다스에는 between 같은 것 없나?'하고 찾고 계셨을 지도 모르겠습니다.

 

간단한 예제를 통해 설명드리겠습니다. 제 블로그의 일별 페이지뷰 수를 담고 있는 page_view.xlsx라는 엑셀 파일이 있습니다. 이 파일을 읽어서 2021년 기록만 따로 추출해보도록 하겠습니다. 

 

우선 page_view.xlsx를 데이터프레임으로 만들면 다음과 같습니다.

 

df_page_views = pd.read_excel('page_view.xlsx', sheet_name='데이터세트1')
print(df_page_views)

 

 

2019년 12월 20일부터 2022년 6월 4일까지의 데이터가 들어가 있음을 확인할 수 있습니다. 이 중에서 딱 2021년에 해당되는 데이터만 가져와서 별도의 데이터프레임을 만들도록 하겠습니다. 다음과 같이 데이터프레임에서 날짜 컬럼을 선택하여 시리즈로 만든 다음에 between 메소드를 활용하여 2021년 데이터만 추출해낼 수 있습니다.

 

df_2021 = df_page_views[df_page_views['일 색인'].between('2021-01-01', '2021-12-31')]
print(df_2021)

 

 

2021년 데이터만 잘 추출된 것을 확인하실 수 있습니다.

 

전체 코드 공유

전체 코드는 여기서 확인하시면 됩니다. 

 

import pandas as pd 

# 엑셀 파일 데이터프레임으로 가져오기
df_page_views = pd.read_excel('page_view.xlsx', sheet_name='데이터세트1')
print(df_page_views)

# 컬럼 데이터 타입 확인
print(df_page_views.dtypes)

df_2021 = df_page_views[df_page_views['일 색인'].between('2021-01-01', '2021-12-31')]
print(df_2021)

 

관련 글

[python+pandas] 일간 데이터를 월간 데이터로 변환한 후에 선 그래프 그리기