데이터 탐색

이번 포스팅에서는 데이터 분석 프로세스의 세 번째 단계인 데이터 탐색 에 대해서 알아 보겠습니다. 이번 포스팅 글을 이해하려면 아나콘다를 설치해야 합니다. 설치 방법은 아나콘다 설치 방법 알아보기 포스팅 글을 참고하시면 됩니다.

붓꽃 데이터세트 로드

시작하려면 먼저 분석할 데이터 세트를 다운로드 받아야 합니다. 지난 포스팅(데이터수집)에서 설명드린 Kaggle 싸이트에 접속하면 다운받으실 수 있습니다. 붓꽃 데이터 세트를 D드라이브에 다운로드하여 저장합니다.

# 데이터 분석을 위해 필요한 라이브러리 임포트
import pandas as pd

# CSV 파일을 데이터프레임으로 로드
irisData = pd.read_csv('D:/iris.csv', index_col = 'Id')


데이터 요약

이제 데이터가 로드 되었으므로 데이터 세트에 대한 몇 가지 요약 통계를 수행하여 데이터 구조를 살펴 보겠습니다.


DataFrame.head()

# 첫 5개의 행 표시
irisData.head()
--------------------------------------------------------------------------------------

    SepalLengthCm	SepalWidthCm	PetalLengthCm	PetalWidthCm	Species
Id					
1	5.1         	3.5         	1.4         	0.2         	Iris-setosa
2	4.9         	3.0         	1.4         	0.2         	Iris-setosa
3	4.7         	3.2         	1.3         	0.2         	Iris-setosa
4	4.6         	3.1         	1.5         	0.2         	Iris-setosa
5	5.0         	3.6         	1.4         	0.2         	Iris-setosa


DataFrame.tail()

# 마지막 5개의 행 표시
irisData.tail()
--------------------------------------------------------------------------------------
	SepalLengthCm	SepalWidthCm	PetalLengthCm	PetalWidthCm	Species
Id					
146	6.7         	3.0         	5.2         	2.3         	Iris-virginica
147	6.3         	2.5         	5.0         	1.9         	Iris-virginica
148	6.5         	3.0         	5.2         	2.0         	Iris-virginica
149	6.2         	3.4         	5.4         	2.3         	Iris-virginica
150	5.9         	3.0         	5.1         	1.8         	Iris-virginica

위와 같은 작업은 Excel 파일을 처음 열 때 확인하는 것 처럼 데이터세트가 어떻게 보이는지 이해하는 데 많은 도움이 됩니다. 이는 다음과 같은 중요한 정보를 제공합니다.

  • 어떤 열이 있나요?
  • 각 열의 데이터는 다음 셋 중 하나입니다.
    • 숫자?
    • 범주형?
    • 타임스탬프?
  • 데이터 세트의 ‘shape’과 ‘feel’은 무엇입니까? 어떻게 보였나요?



DataFrame.info()

다음으로 info() 함수를 사용하여 데이터 세트의 열을 확인해 보겠습니다. .head() 및 .tail()을 사용하여 첫 번째 및 마지막 행을 확인해서 얻은 정보보다 조금 더 포괄적인 내용이 표시됩니다.

  • 열 번호: 열이 나타나는 순서입니다.
  • 열 이름: 각 열의 이름입니다.
  • Null이 아닌 개수: 각 열에 있는 Null 값의 양입니다.
  • Dtype: 각 열의 데이터 유형(Dtype) 입니다.
    • 부동 소수점: 소수 값 또는 분수
    • 정수: 정수
    • 날짜시간: 날짜 구성요소와 시간 구성요소로 구성된 타임스탬프
    • 문자열: 일련의 문자

# 데이터세트와 해당 열의 요약 표시
irisData.info()
---------------------------------------------------------------
<class 'pandas.core.frame.DataFrame'>
Int64Index: 150 entries, 1 to 150
Data columns (total 5 columns):
 #   Column         Non-Null Count  Dtype  
---  ------         --------------  -----  
 0   SepalLengthCm  150 non-null    float64
 1   SepalWidthCm   150 non-null    float64
 2   PetalLengthCm  150 non-null    float64
 3   PetalWidthCm   150 non-null    float64
 4   Species        150 non-null    object 
dtypes: float64(4), object(1)
memory usage: 7.0+ KB


DataFrame.describe()

.describe()를 사용하여 데이터 세트의 숫자 열에 대한 요약 통계값을 생성할 수 있습니다.

  • count: 비어 있지 않은 값의 개수입니다.
  • mean: 평균값입니다.
  • Std: 표준편차.
  • min: 최소값입니다.
  • 25%: 25% 백분위수 – 데이터 값의 하위 25%에 해당하는 값입니다.
  • 50%: 50% 백분위수(중앙값이라고도 함) – 데이터 값의 정 가운데 값을 나타냅니다.
  • 75%: 75% 백분위수 – 데이터 값의 상위 25%에 해당하는 값입니다.
  • max: 최대값입니다.

# 데이터세트와 해당 열의 요약 통계값 표시
irisData.describe()
--------------------------------------------------------------------------------------
	    SepalLengthCm	SepalWidthCm	PetalLengthCm	PetalWidthCm
count	150.000000  	150.000000    	150.000000    	150.000000
mean	5.843333    	3.054000    	3.758667    	1.198667
std 	0.828066    	0.433594    	1.764420    	0.763161
min 	4.300000    	2.000000    	1.000000    	0.100000
25% 	5.100000    	2.800000    	1.600000    	0.300000
50% 	5.800000    	3.000000    	4.350000    	1.300000
75% 	6.400000    	3.300000    	5.100000    	1.800000
max 	7.900000    	4.400000    	6.900000    	2.500000


결론

지금까지 데이터 탐색을 위한 기초적인 방법에 대해 알아보았습니다. Python을 사용하여 Iris Flower 데이터 세트를 로드하고 데이터의 초기 요약 통계량을 산출해 보았습니다. 이는 모든 데이터 분석의 기본 단계로, 추가 분석을 위한 기반을 제공합니다.

다음 포스팅에서는 다음 단계인 “데이터 전처리”에 대해서 알아 보겠습니다.

감사합니다!

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다