[Elice] 11주차. 데이터 분석 핵심 기법 (실시간 강의 3)

2021. 9. 3. 02:21Elice AI Track 2nd/Elice (오프라인) 실시간 강의

판다스(pandas)는 파이썬 언어로 작성된 데이터를 분석 및 조작하기 위한 소프트웨어 라이브러리이다

수치형 테이블과 시계열 데이터를 조작하고 운영하기 위한 데이터를 제공한다

 

(이름은 계량 경제학에서 사용되는 용어인 PANel DAta의 앞 글자를 따서 지어졌다고 한다)

 

판다스는 R에서 사용되던 data.frame 구조를 본뜬 DataFrame이라는 구조를 사용

R의 data.frame에서 사용하던 기능 상당수를 무리없이 사용할 수 있다고 한다

 

거기에 더해 파이썬이라는 접근성이 좋은 언어를 기반으로 동작하기 때문에

파이썬으로 데이터 분석을 시작하는 사람들이 많이 사용하는 라이브러리로 자리잡게 되었다고 한다

 

한 줄 요약 : 접근성이 좋고, 친숙한 언어를 통해 데이터를 손쉽게 조작하고 분석하기 위한 라이브러리

 

 

pandas 기본(1)

1. 판다스 라이브러리 추가

사전에 설치된 라이브러리를 import를 통해 불러올 수 있다

라이브러리란?

소프트웨어를 개발할 때 컴퓨터 프로그램이 사용하는 비휘발성 자원의 모임

구성 데이터, 문서, 도움말 자료, 메시지, 틀, 미리 작성된 코드, 서브 루틴, 클래스, 값, 자료형 사양

이렇게 여러 내용들을 포함할 수 있다

 

* VSCode 환경에서 pandas 사용시

pip install pandas # 판다스 패키지 설치

 

 

2. 판다스 라이브러리 추가 기능 - DataFrame()

DataFrame의 기능을 사용하겠다는 의미로, 데이터프레임을 만드는 명령어이다(pandas의 기본 구조)

인덱스의 값을 세로로 넣어주게 된다

 

일반적으로 pandas를 pd로 as(allias)를 이용해 줄여서 사용한다고 한다

(아래와 같은 방법으로 조금 더 편하게 줄여서 사용할 수 있다)

 

 

3. DataFrame() - 리스트 형태 데이터

1, 2, 3을 가로형태가 아닌 세로형태로 넣어주게 된다(각 열이 생성)

 

만약 위와 같은 리스트가 있다고 가정해보자

이것을 DataFrame 구조 형태로 출력하게 되면, 2차원 배열의 형태가 만들어진다

 

 

4. DataFrame() - 변수 저장

DataFrame의 데이터는 새로운 특정 변수에 담아서 사용할 수도 있다, 방법은 아래와 같다

 

pd.DataFrame()안에 변수로 넣는 것 또한 가능하다

 

 

5. DataFrame() - 컬럼명 사용

기존에는 0 1 2 3과 같이 인덱스의 숫자와 같은 형식의 값이 기본값으로 출력되었다

해당 컬럼에 원하는 형태의 특정 이름을 부여할 수도 있다

예시 코드와 같이 columns 옵션을 이용하여 지정해줄 수 있다

 

아래와 같은 형태로도 많이 사용된다

데이터를 받을 때는 리스트의 형태로 받아서, 출력시에는 key, value의 형태로 각 행을 한 번에 출력

 

 

 

pandas 기본(2)

* 현재 df

 

1. 특정 열(컬럼)을 추출(조회)

데이터프레임의 해당 변수에 대괄호["컬럼명"] 형태로 특정 열의 속하는 모든 데이터를 출력할 수 있다

 

 

2. Series

데이터프레임에서 추출한 컬럼의 전체 데이터의 데이터 타입을 series라고 한다

series는 key와 value로 이루어지며, 인덱스를 가지고 있다

 

여기서 인덱스는 df 전체의 행의 인덱스를 의미한다

start는 시작행, stop은 종료행(+1), step은 인덱스가 몇 씩 증가하며 생성되었는지를 의미한다

 

여기서 series는 시퀀스 자료형(sequence types)이다

즉, 연속되는 값으로 이루어진 데이터 묶음이라고 볼 수 있다

 

인덱스 값을 리스트로 조회하고 싶다면 아래와 같은 방법으로 확인할 수 있다

 

 

3. Series Type - for 반복문

위에서 알아본 바와 같이 Series는 시퀀스 자료형으로 iterable 객체기 때문에 for 또한 사용가능하다

 

아래와 같은 방법으로 series형태 그대로 가져올 수도 있다

 

 

4. 존재하지 않는 컬럼

DataFrame() 내에 존재하지 않는 컬럼을 조회하려고 하면 그 즉시 에러가 발생한다

해당하는 key 값이 존재하지 않기 때문에 key에러가 발생한 모습

 

 

 

5. 컬럼 추가

존재하지 않는 컬럼에 대해 값을 추가하여 기존 테이블에 추가할 수 있다

이때 추가되는 데이터는 당연히 컬럼의 값으로 행의 형태로 추가되게 된다

 

 

6. 컬럼 삭제

기존 테이블에 존재하는 컬럼 중 특정 컬럼을 선택해서 삭제할 수 있다

삭제 시 항상 변경점이 생긴 데이터에 대해서는 변수에 새롭게 해당 데이터를 담아주어야 한다

예를 들어 upper()를 적용한 후 변수에 할당해주지 않으면 변경이 되지 않던 것을 생각

 

inplace=True와 같은 기능이 있지만, 판다스에서 공식적으로 추천하지 않는 기능

axis=1을 넣어주어 변경점을 적용한다(axis=1을 넣지 않으면 "행 삭제"기능)

 

 

 

7. 행, 열 명령어를 사용한 특정 데이터 추출

위 표에서 만약 "국어"열, 1행에 데이터를 찾고 싶다면 loc(location)을 이용해서 데이터를 찾을 수 있다

loc을 사용할 때에는 뒤에 행과 열을 감쌀 때 대괄호[ ]를 사용해야 한다

 

동시에 여러값을 찾고 싶다고 해서 여러번을 사용하더라도 마지막 결과만을 반환해주니 유의

 

 

 

8. 행, 열 명령어를 사용한 특정 데이터 변경

값의 추출뿐 아니라 변경 또한 가능하다

 

 

9. 행, 열 명령어를 사용한 특정 조건에 맞는 데이터 추출

명렁을 작성시에 조건을 사용할 수 있다

원하는 데이터를 걸러낼 수 있는 조건의 범위를 설정하고 데이터를 추출하면 된다

 

예) 영어점수가 50점 이상인 데이터만 추출