파이썬 기초 문법 5일차 - 판다스 2편

저번시간에 이어서 판다스를 계속 공부해보겠습니다.

2021.09.01 - [Tip & Tech/Python] - 파이썬 기본 문법 강의 - 1일차
2021.09.02 - [Tip & Tech/Python] - 파이썬 기본 문법 강의 2일차 - 제어문으로 로또 게임 만들기
2021.09.03 - [Tip & Tech/Python] - 파이썬 기초 문법 3일차 - Numpy
2021.09.05 - [Tip & Tech/Python] - 파이썬 기초문법 4일차 - 판다스 알아보기
2021.09.07 - [Tip & Tech/Python] - 파이썬 기초 문법 5일차 - 판다스 2편

 

판다스

결측치 처리

결측치란 말처럼 손실 데이터를 의미하며, 파이썬 에서는 NaN 등으로 표시됩니다.

일반적으로 데이터를 처리할때 없어진 이 결측치로 인하여 데이터 분석시 왜곡 등 문제가 생길 수 있는데요.

그래서 데이터 전처리를 할 때 이러한 결측치를 제거 합니다.

결측치

결측치 찾는 방법

판다스에서 결측치는 간단히 isna(), isnull() 함수로 찾을 수 있습니다.

저번 타이타닉 데이터를 다시 보도록 합니다.

df.isna()함수만을 이용하면 아래처럼 보기가 힘드니,

df.insa().sum()을 통해서 항목별로 결측치가 얼마나 되는지 살펴보겠습니다.

결측치

deck에 결측치가 688개나 되는데요. 그리고 age에 177개가 있습니다.

그러면 오늘은 df['age']나이에 있는 결측치를 한번 처리해보겠습니다.

판다스에서 평균은 mean이고 중간값은 median인데요.

평균은 29.7세이고 중앙값은 28입니다.

age의 평균

그리고 이 결측치를 채우는 방법은 fillna()함수를 통해서 채울 수 있는데요.

특정값으로도 채울수 있고, 아래처럼 앞에서 살펴본 평균값으로 채울수도 있습니다.

그리고 deck은 최빈값인 mode()를 통해서 채워봤습니다. mode()를 사용할 경우 [0]을 꼭 입력해줘야 합니다.

fillna

 

행열 추가하고 삭제하기

그리고 drop을 통해서 불필요한 행과 열을 없앨 수 있습니다.

먼저 df1 = df.copy()를 통해서 df1이라는 데이타프레임을 추가하고 변경해보도록 하겠습니다.

class와 pclass가 같으므로 class열을 모두 drop해보겠습니다.

바로적용하려면 마지막에 옵션으로 inplace=True를 입력해 줍니다.

열삭제

그리고 열(column)을 추가할 수 있는데요.

family라는 열을 sibsp와 parch를 더해서 만들 수 있습니다.

열 만들기

그리고 판다스의 데이터를 일정한 구간별로 쪼갤 수도 있는데요.

pd.cut()과 pd.qcut()을 통해 나눌 수 있습니다. 

qcut은 quantity즉 분포를 최대한 비슷하게 쪼개 줍니다.

데이터 쪼개기

그리고 데이터를 병합하는 pd.concat()함수가 있는데요.

단순하게 지정한 DataFrame을 연결합니다.

concat

즉 can = pd.concat([can1, can2])라고하면 두개의 데이터프레임을 연결합니다.

그리고 이 두개의 데이터 프레임에 []을 씌우지 않는다면,

아래와 같은 에러가 뜨니 꼭 리스트로 만들어서 합쳐줘야 합니다.

TypeError: first argument must be an iterable of pandas objects, you passed an object of type "DataFrame"

그리고 병합하는 명령어인 merge도 사용할 수 있습니다.

판다스 시각화하기

판다스에서는 간단하게 시각화를 할 수 있는데요.

아까 타이나틱에서 생존여부를 가지고 통계를 볼 수 있는데요

아래의 표를 시각화해서도 살펴볼수 있습니다.

시각화

그리고 데이터 시각화는 Matplotlib를 이용하면 다양한 기능을 사용할 수 있는데요.

Matplotlib?

파이썬과 넘파이에서 plotting을 위한 라이브러리입니다 .

matplotlib

그리고 다양한 옵션을 통해서 시각화를 꾸밀수도 있습니다.

시각화 옵션

그리고 이외에도 머신러닝에 사용되는 Seaborn등을 통해서 시각화도 가능한데요.

Seaborn은 두 카테고리의 상관도를 볼 수 있는 히트맵등을 확인하실수 있습니다.

heatmap

728x90

해당 블로그에서 발행되는 콘텐츠 중 일부 글에는 제휴 및 홍보 관련 링크가 포함될 수 있으며, 파트너스 활동의 일환으로 일정액의 수수료를 받을 수 있습니다.