안녕하세요. 비스카이비전입니다. 오늘은 데이터프레임에서 특정 기간의 데이터만 추출하는 방법에 대해 알아보도록 하겠습니다.
데이터프레임에서 특정 기간의 데이터만 추출하기
결론부터 말씀드리면 판다스 시리즈 객체의 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 |