데이터 분석 with Python 2장
- Pandas를 활용한 데이터 분석 -
Pandas는 교유하게 정의한 Series 및 DataFrame 등의 자료 구조를 활용하여 빅데이터 분석에 있어 우수한 성능을 발휘하는 모듈이다. 기존에 엑셀로 하던 모든 분석을 더 큰 스케일의 데이터에 대하여 더 빠른 속도로 적용할 수 있는 장점을 가지고 있다.
Pandas를 설치하는 방법은 cmd 프로그램이나 터미널에 pip install pandas라는 명령을 입력해주면 쉽게 설치가 가능하다. Pandas를 사용하기 위해서는 Python에서 import를 시켜 주어야한다. import Pandas as pd 로 명령을 넣어서 pd라는 이름을 통해 Pandas 모듈을 사용할 수 있는 상태로 만든다.
Pandas의 대표적인 데이터 형태는 Series와 DataFrame이다. Series는 동일한 데이터형의 복수 개의 성분으로 구성된 자료 구조이며 DataFrame은 서로 같거나 다른 데이터형의 여러 개의 열에 대하여 복수 개의 성분으로 구성된 표와 같은 형태의 자료 구조이다.
Series의 경우 pd.Series() 함수를 사용하여 만들 수 있다. 이 때 python의 리스트 형태나 numpy의 array 형태가 인자로 들어오게 된다. Series를 생성할 때 index라는 값을 줄 수 있다. index의 경우 index=[] 형태로 주어주게 되면 순서에 맞춰 각각의 값들에 index로 지정되게 된다. 만약 index를 주지 않게 되면 0부터 시작되는 숫자의 형태로 index가 자동으로 주어지게 된다. 만약 ser이라는 Series를 만들었다고 하면 ser.index는 index 값만을 추출하고 ser.values는 데이터 값을 추출해준다.
DataFrame은 pd.DataFrame()의 함수로 만들어진다. 이 때 python의 Dictionary 형태나 numpy의 2차원 array 등의 형태가 사용된다. DataFrame은 서로 다른 두 종류의 index가 각각 행과 열로 부여되어 이들이 교차되는 지점을 통해 값의 위치를 확인할 수 있다. 행 방향의 index를 index라고 하고 열 방향의 index를 column이라고 한다. df라는 DataFrame을 만들어 주었다고 생각하면 df.index는 행 index를 df.colums는 열 index를 추출해준다. df.values를 사용하면 DataFrame의 값을 2차원 array로 추출해준다.
DataFrame의 형태가 Series의 형태보다 데이터 분석에 더욱 많이 활용된다. 따라서 DataFrame에 대해서 자세히 살펴볼 것이다. DataFrame을 잘 다루기 위해서는 행과 열을 잘 다루는 방법을 알아야한다.
DataFrame의 열을 다루는 방법은 간단하다. []를 사용하여 열에 대한 정보를 얻을 수 있다. 열은 column이라는 index를 사용하여 구분된다. 따라서 []안에 column에 대한 정보를 입력하면 해당하는 열에 있는 data를 가져올 수 있다. 또한 = 기호를 사용하여 값을 지정하게 되면 열의 값을 바꿀 수 있다. 하나의 값을 넣게 되면 해당 열에 대한 모든 값이 하나의 값으로 바뀌게 되고 행렬의 형태로 넣어주면 행의 index에 맞춰 해당 열에 넣어주게 된다. 만약 []안에 해당하는 열의 column 값이 없으면 새로운 column을 생성하여 만들어준다. 그리고 = 기호를 사용하여 안에 값을 넣어주게 된다.
행을 다루는 방법으로는 loc와 iloc를 사용한다. loc는 실제 행에 주어진 index를 사용하여 조작하는 방법이다. loc[]를 사용하여 안에 해당 행의 index를 기입하면 그 행을 가리키게 된다. 이 때 python의 리스트 형태를 다루는 방식으로 다룰 수 있다. 그런데 loc를 이용하면 열에 대한 부분도 다룰 수 있다. ‘,’를 통해 행과 열로 구분하여 지정하는 값들을 나타낼 수 있게 된다. iloc는 실제 행에 주어진 index가 아니라 임의로 지정되는 숫자 index를 가지고 행을 다루는 것을 의미한다. 첫 행부터 0의 값을 가지고 하나씩 증가하는 index를 가지게 된다. 이는 column에도 같게 적용된다.
DataFrame에도 boolean indexing이 존재한다. []나 loc, iloc를 사용하여 데이터를 나타낼 때 이와 비교 연산자를 사용하여 True와 False로 나눌 수 있다. 이를 통해 우리가 원하는 데이터만을 뽑아서 추출할 수 있다. True와 False를 나타내는 DataFrame을 또 다시 loc에 넣게 되면 True인 값만을 추출해서 보여주게 된다.
DataFrame에서 데이터 분석을 위한 여러 함수들을 제공한다. 예를 들어 sum이라는 함수는 합을 구해준다. 그런데 이 때 중요한 점은 행과 열을 잘 구분해주어야 한다는 것이다. 행에 대한 합을 구할 것인지 열에 대한 합을 구할 것인지를 지정해주어야 한다. 이때 사용하는 인자가 axis이다. axis = 0 이면 행 방향을 axis = 1 이면 열 방향의 계산을 한다는 것을 의미하게 된다. DataFrame은 describe()라는 함수를 제공하는데 이는 각 column에 한해서 평균, 분산, 최솟값, 최댓값 등 기본 통계량을 산출한 결과를 보여준다. 따라서 data set의 전체적으로 살펴보고자 할 때 유용하게 사용된다.
'데이터 분석' 카테고리의 다른 글
웹 크롤링 with Python 1장 (0) | 2017.07.11 |
---|---|
데이터 분석 with Python 3장 - Matplotlib를 활용한 데이터 분석 - (0) | 2017.06.11 |
데이터 분석 with Python 1장 - NumPy를 활용한 데이터 분석 - (0) | 2017.06.09 |
데이터 마이닝4 - 분석 기법 및 모형 평가 - (0) | 2017.05.05 |
데이터 마이닝3 - 데이터 마이닝 분석 기법 - (0) | 2017.05.03 |