판다스(Pandas)는 데이터 처리, 특히 행과 열로 이뤄진 2차원 데이터를 효율적으로 가공, 처리할 수 있는 기능을 제공하는 라이브러리다.
- 판다스 모듈 임포트하기
import pandas as pd
- 캐글(Kaggle)에서 데이터 파일 다운받기
캐글은 머신러닝 경연에 사용되는 많은 예제들을 포함하는 사이트이다. 타이타닉 탑승자 중 생존자 예측하기는 그중에서 가장 대표적인 예제이다. 캐글에 로그인을 한 후에 아래 링크에 들어가서 Download All 버튼을 눌러 타이타닉 탑승자에 대한 데이터를 다운받을 수 있다.
https://www.kaggle.com/competitions/titanic/data
Titanic - Machine Learning from Disaster | Kaggle
www.kaggle.com
- csv파일을 DataFrame으로 로딩하기
# csv파일을 DataFrame으로 로딩하기
titanic_df = pd.read_csv('train.csv') # read_csv('파일명(파일경로명)')
print('titanic_df 변수 type:', type(titanic_df))
titanic_df
실행 결과
DataFrame은 판다스의 핵심 개체로, 여러 개의 행과 열로 이루어진 2차원 데이터 구조체이다. 1차원 데이터 구조체로는 Series가 있다. Index는 위의 표에서 가장 왼쪽 열에 있는 번호로 개별 데이터를 고유하게 식별하는 Key이다. 실행 결과에서 보이는 것처럼 titanic_df 변수에 DataFrame으로 불러온 csv 파일을 저장했기 때문에 변수 type은 DataFrame이다.
실습하려는 파일인 train.csv가 작업하고 있는 Jupyter Notebook파일과 동일한 파일에 있으면 위의 코드처럼 train.csv만으로도 파일을 불러올 수 있다. 만약 그렇지 않다면, 이 자리에 데이터 파일 경로명을 모두 입력해야 한다.
변수명 titanic_df를 입력하면 실행 결과와 같이 DataFrame 표를 출력한다.
titanic_df.head(5)
실행 결과
간단하게 보려면 titanic_df.head(5)를 입력하면 맨 위 5개의 행만 출력한다. 괄호 안에 값을 넣지 않으면 Default 값은 5이다. 맨 아래의 데이터만 출력하고 싶으면 head 대신 tail을 사용하면 된다.
print('DataFrame의 크기:', titanic_df.shape)
실행 결과
DataFrame 객체에서도 shape 변수를 통해 크기를 알 수 있다. titanic_df는 891개의 행과 12개의 열로 이루어져 있다.
- info(), describe()
info() 메서드를 통해 총 데이터 건수와 데이터 타입, Null 건수를 알 수 있다. describe() 메서드를 통해서는 숫자 형태의 열에 대한 데이터 분포도를 알 수 있다.
titanic_df.info()
실행 결과
'Embarked' 행 오른쪽에 889 non-null은 총 891개의 행 중에서 889개의 행이 Null값이 아니다, 즉 2개의 행을 제외한 모든 행에 값이 있다는 뜻이다. 그리고 아래 dtypes: float64(2), int64(5), object(5)는 실수형 데이터 열이 2개, 정수형 데이터 열이 5개라는 뜻이다. object는 문자열 데이터라고 생각하면 된다.
titanic_df.describe()
실행 결과
숫자 형태의 데이터 열이 총 7개(실수형 2개, 정수형 5개)이므로 7개의 열에 대해서 데이터분포도(개수, 평균, 표준편차, 최소값, 25% percentile 값, 50% percentile 값, 75% percentile 값, 최대값)를 출력한다. 이러한 값들은 데이터를 분석할 때 중요하게 사용된다.
- value_counts()
value_counts() 메서드를 호출하면 해당 칼럼값의 유형과 건수를 확인할 수 있다.
# DataFrame의 [] 내부에 열 이름을 입력하면 해당 열만 Series형태로 반환된다.
value = titanic_df['PClass'].value_counts()
print(value)
실행 결과
위와 같이 데이터가 많은 건수 순서로 정렬되어 반환된다. Pclass 열에 3이 491개, 1이 216개, 2가 184개 존재하는 것을 알 수 있다.
'머신러닝(MachineLearning) > 판다스(Pandas)' 카테고리의 다른 글
DataFrame 결손 값 처리하기, apply lambda (0) | 2022.07.14 |
---|---|
DataFrame의 정렬, Aggregation, groupby (0) | 2022.07.13 |
DataFrame에서 원하는 데이터 추출하기 (0) | 2022.07.08 |
Index 객체 (0) | 2022.07.07 |
DataFrame 데이터셋 수정하기 (0) | 2022.06.26 |