반응형
안녕하세요. 비스카이비전입니다. 오늘은 데이터프레임에서 특정 기간의 데이터만 추출하는 방법에 대해 알아보도록 하겠습니다.
데이터프레임에서 특정 기간의 데이터만 추출하기
결론부터 말씀드리면 판다스 시리즈 객체의 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)
관련 글
'Dev > python' 카테고리의 다른 글
| [matplotlib] 그래프의 y축 범위 지정하는 방법 (0) | 2022.06.27 |
|---|---|
| [matplotlib] 그래프 스타일 바꾸기 (0) | 2022.06.26 |
| [pandas 오류 해결] TypeError: read_excel() got an unexpected keyword argument 'fillna' (0) | 2022.06.26 |
| [matplotlib] 그래프 여러 개 서브플롯(subplot)으로 그리기 (0) | 2022.06.21 |
| [pandas] 데이터프레임의 특정 컬럼을 행 인덱스로 설정하는 방법, set_index() (0) | 2022.06.08 |
| [pyside6] 창 타이틀바에서 닫기 버튼, 최소화 버튼, 최대화 버튼 등을 비활성화 되게 하려면? (0) | 2022.06.07 |
| [python+pandas] 일간 데이터를 월간 데이터로 변환한 후에 선 그래프 그리기 (5) | 2022.06.06 |
| [pandas] 선 그래프, 막대 그래프, 히스토그램, 박스 플롯 그리기 (0) | 2022.06.05 |