반응형

안녕하세요, 매주한책입니다.

이번에는 파이썬 머신러닝 판다스 데이터 분석을 요약해보려고 합니다.

다른 머신러닝 책을 보면서 판다스를 자유롭게 사용할 수 있으면 좋을 것 같아서 판다스 데이터 분석 책을 읽어보았습니다. 책을 읽으면서 기초적인 부분을 보충할 수 있어 좋았습니다. 

책은 약 400페이지로 구성되어 있는데, 1장에서는 판다스 입문을 다루고 있습니다. 

 

 

책 요약 

머신러닝을 배울 때 궁금했던 개념을 짚고 넘어가려고 합니다. 

 

라이브러리 및 용어 정리 

1. pip 뜻 

pip은 파이썬 패키지 관리자로 Python Package Index의 줄임말로, 패키지를 관리하고 열람하는 저장소를 말합니다. 

pip 명령어를 통해서 다양한 python 라이브러리들을 다운받을 수 있습니다. 

 

2. pandas 뜻 

판다스는 2008년 금융 데이터 분석용으로 처음 개발되었으며, 데이터를 수집하고 정리하는 데 최적화된 도구입니다.

시리즈와 데이터프레임은 데이터 구조를 표현하는 대표적인 클래스 객체이고, 내장함수로는 Series(), DataFrame(), read_csv(), read_excel() 등이 있습니다.

 

3. Numpy 뜻 

NumPy는 Numerical Python의 약자로 대표적인 파이썬 기반 수치 해석 라이브러리입니다. 

선형대수 연산에 필요한 다차원 배열과 배열 연산을 수행하는 다양한 함수를 제공합니다.

 

4. Matplotlib 뜻 (맷플롯립)

맷플롯립은 그래프나 차트 등 그래픽으로 표현하는 데 사용하는 파이썬 기반 2D 시각화 도구입니다.

판다스와 연계하여 데이터를 다양한 방식으로 시각화하는 기능을 제공합니다.

 

5. SciPy 뜻 (사이파이)

사이파이는 과학용 연산에 필요한 다양한 패키지를 모아 놓은 라이브러리입니다.

미적분, 선형대수, 행렬 연산, 방정식 계산 등에 필요한 함수를 지원합니다.

 

6. 사이킷런 뜻 scikit-learn

머신러닝 학습을 위한 파이썬 라이브러리입니다. 회귀분석, 분류, 군집 등 실무에서 적용하는 대부분의 머신러닝 모형을 제공합니다.

 

예제를 보면서 마주하는 의문점

1. Pandas와 pd의 차이?

컴퓨터에 설치된 판다스를 파이썬 파일에서 사용하려면, 판다스 라이브러리를 실행 환경으로 불러오는 작업이 필요합니다. 이때 import 명령을 사용하는데, import pandas as pd라는 형식으로 부를 수 있습니다. 

이때 as pd라는 의미는 pandas 대신 pd라는 약칭으로 부르겠다는 의미입니다. 

데이터 처리할 때, pandas 함수들을 사용하는데 매번 pandas.~ 라고 쓰면 길어져서 pd.~라고 간단하게 쓰겠다는 의미입니다. pd처럼 Numpy는 np라고 줄여서 자주 사용합니다. 

 

2. dataframe의 속성 명칭 및 수정 방법 

  나이 성별 학교
준서 15 덕영중
예은 16 수리중

여기서 '나이', '성별', '학교'를 나타내는 부분이 df.columns이고,

'준서', '예은'을 나타내는 부분이 df.index입니다.

column 이름을 바꾸고 싶으면 rename() 메소드를 사용하면 됩니다.

df.rename(columns={'나이':'연령','학교':'소속'}, inplace=True}

데이터프레임의 행 또는 열을 삭제하는 명령으로 drop() 메소드가 있습니다. 행을 삭제할 때는 axis=0을 사용하고, 열을 삭제할 때는 axis=1을 사용합니다. drop() 메소드는 기존 객체를 변경하지 않고 새로운 객체를 반환합니다.

원본 객체를 직접 변경하고 싶다면 inplace=True 옵션을 사용합니다.

만약에 위의 dataframe에 아래와 같이 drop()을 사용한다면, 학교 열이 삭제됩니다. 

df.drop('학교', axis=1, inplace=True)

 

  나이 성별
준서 15
예은 16

 

3. dataframe 행 선택하는 방법 

데이터프레임의 행 데이터를 선택하기 위해서는 loc와 iloc 인덱서를 사용합니다. 

인덱스 이름을 기준으로 행을 선택할 때는 loc를 사용하고, 정수형 위치 인덱스를 사용할 때는 iloc을 사용합니다.

구분 loc iloc
탐색대상 인덱스 이름 index label 정수형 위치 인덱스 integer position
범위 지정 가능(범위의 끝 포함)
예) ['a':'c'] -> 'a', 'b', 'c' 
가능(범위의 끝 제외)
예) [3:7] -> 3, 4, 5, 6

 

label = df.loc['예은']

 

4. dataframe 열 선택하는 방법

df['열이름']으로 열을 선택할 수 있습니다.

 

age=df['나이']

데이터프레임에서 2개 이상의 열을 추출하려면 2중 대괄호를 사용하면 됩니다.

 

info=df[['나이','성별']]

 

5. 열 추가

데이터프레임에 열을 추가하는 방법은 df['추가 열의 이름']=[값]으로 추가할 수 있습니다. 

df['학교']=['국어중','국어고']

6. 행 추가

loc를 이용하여 행 추가를 할 수 있습니다. 

 

df.loc[2] = ['수진', 14, '여', '수리중']

 

7. 행, 열의 위치 바꾸는 방법 

데이터프레임의 행과 열을 서로 맞바꿉니다. 선형대수학의 전치행렬과 같은 개념이고, df= df.transpose() 또는 df = df.T를 사용합니다. 

 

8. 특정 열을 행 인덱스로 설정하는 방법

df.set_index() 메소드를 사용합니다. 

df.set_index(['이름']) 이런 식으로 설정하면, 기존의 행 index가 ['이름']열의 값으로 바뀝니다.

 

9. 정수형 위치 인덱스로 초기화하는 방법

reset_index() 메소드를 활용하면 행 인덱스를 정수형 위치 인덱스로 초기화할 수 있습니다. 

기존 행 인덱스는 열로 이동됩니다. 

ndf = df.reset_index()로 초기화 가능합니다. 

 

10. 연산 메소드에 fill_value 옵션 설정하여 적용하는 방법

Series1.add(Series2, fill_value=0)

덧셈하는데, 값이 비어있는 경우, 누락 데이터 NaN 대신 숫자 0을 입력하는 옵션입니다. 

fill_value = 0 옵션을 설정하면 비어있는 값을 0으로 채워서 계산합니다. 

반응형