본 포스트는 inflearn 의 '캐글로 시작하는 머신러닝, 딥러닝 분석'(대구빅데이터활용센터) 강의 내용을 기반으로 실습을 진행하며 작성하였습니다.
안녕하세요?
지난 번 포스트에서는 데이터 셋을 가져와서 코드를 작성하는 방법을 알아봤습니다.
이번 포스트에서는 이렇게 가져온 데이터셋을 pandas 라는 라이브러리를 이용해서 데이터 처리 해보도록 하겠습니다.
pandas 란?
Pandas는 쉽고 직관적인 관계형 또는 분류된 데이터로 작업 할 수 있도록 설계된
빠르고 유연하며 표현이 풍부한 데이터 구조를 제공하는 Python 패키지입니다.
Pandas는 NumPy를 기반으로하며 다른 많은 타사 라이브러리와 잘 통합되도록 설계되어있다고 합니다.
pandas 로 데이터 읽기
지난 번 포스트에서 자동으로 작성된 아래의 코드를 보시면
이미 pandas 와 numpy 패키지가 import 되어있는 것을 보실 수 있습니다.
pandas 를 이용해서 데이터셋의 데이터를 읽기 위해서 아래와 같이 코드를 작성합니다.
df = pd.read_csv('/kaggle/input/london-bike-sharing-dataset/london_merged.csv', parse_dates=['timestamp']) # 해당 경로의 csv 데이터 읽기
df.head() # 상위 5개 데이터 조회
shift+enter 로 해당 코드를 실행해보시면 아래와 같이 5개의 데이터가 조회되는 것을 볼 수 있습니다.
(만약 name 'pd' is not defined 와 같은 오류가 뜨신다면, 위의 코드가 실행이 안되어서 pandas 패키지 import 가 안된 것이니, 위에 자동으로 작성된 코드를 한번 더 실행해주세요)
데이터 구조 확인
저희가 읽어온 데이터를 pandas를 이용해서 전체적인 구조를 확인해보겠습니다.
아래와 같이 코드를 작성해보시고
#데이터의 타입과 구조
print('데이터의 구조는 : ', df.shape) # 데이터 row 수 , column 수
print('데이터의 타입은 : ', df.dtypes)
print('데이터의 칼럼은 : ', df.columns)
실행을 하게 되면 아래와 같은 결과값이 뜹니다.
각각에 대해 설명을 하자면 아래와 같습니다.
- shape : 데이터의 row수, column 수를 반환
- dtypes : 각 column 의 데이터 타입 반환
- columns : 데이터의 column 들을 반환
그리고 결측값(null) 확인을 위해 아래와 같이 코드를 작성해보고
#결측값 갯수
df.isna().sum()
실행해보면 아래와 같이 결측값이 모두 0인 것을 볼 수 있습니다.
pandas 데이터 칼럼 추가
아래의 코드를 이용하여 데이터 프레임에 연, 월, 요일, 시간에 해당하는 칼럼들을 추가해보겠습니다.
df['year'] = df['timestamp'].dt.year # timestamp 칼럼에서 년 추출한 year라는 칼럼 생성
df['month'] = df['timestamp'].dt.month # timestamp 칼럼에서 월 추출한 month 칼럼 생성
df['dayofweek'] = df['timestamp'].dt.dayofweek # timestamp 칼럼에서 요일 추출한 dayofweek 칼럼 생성
df['hour'] = df['timestamp'].dt.hour # timestamp 칼럼에서 시 추출한 hour 칼럼 생성
해당 코드 입력후 df.head() 를 통해 데이터를 조회해보면 아래 이미지처럼 year, month, dayofweek, hour 칼럼이 추가된 것을 볼 수 있습니다.
아래의 코드로 특정 칼럼에 어떤 값이 몇 개나 있는지를 확인해볼 수 있습니다.
df['year'].value_counts() # year 칼럼의 값별 갯수
결과값을 보면 year 칼럼이 2016인 데이터는 8699, 2015인 데이터는 8643, 2017인 데이터는 72개가 있는 것을 알 수 있습니다.
이상으로 pandas 패키지를 이용해서 데이터를 읽어오고, 그 구조 등을 확인해보았습니다.
다음 포스트에서는 matplot, seaborn, missingno 등의 패키지를 사용하여 그래프 등 시각화를 해보도록 하겠습니다.
Reference
[Inflearn]'캐글로 시작하는 머신러닝
딥러닝 분석'(대구빅데이터활용센터)