Stack Building

pandas 라이브러리 본문

Python

pandas 라이브러리

S00ahKim 2019. 7. 16. 01:29

이 글은 TeamLab의 강좌를 정리한 것입니다.

 

Pandas

- 구조화된 데이터의 처리를 지원

- numpy와 통합하여 handling(인덱싱, 연산, 전처리 등)할 수 있게 함

- R의 데이터프레임 개념 반영

 

Series

- 전체 데이터 테이블 객체를 DataFrame이라고 지칭하는데, 하나의 칼럼 객체는 Series라고 지칭한다. 시리즈를 개별적으로 생성할 수 있다.

- 시리즈는 각각의 데이터를 구분할 수 있는 row instance에서 각각의 인스턴스를 불러주는 index와 data로 구성되어 있다. 데이터를 합칠(join) 때 인덱스를 기준으로 한다. 인덱스의 이름도 지정할 수 있다. 인덱스가 정수가 아니어도 된다.

- 기본적으로 numpy.ndarray의 subclass다.

- index에 접근하는 것, 값을 할당하는 것은 딕셔너리와 유사하다.

- 시리즈.values : 값만 넘파이 리스트로 뽑아낸다.

- 시리즈.index : 인덱스만 넘파이 리스트로 뽑아낸다.

- 시리즈.name으로 시리즈의 이름, 시리즈.index.name으로 인덱스의 이름을 지정할 수 있다.

 

DataFrame

- 여러 시리즈의 합

- 넘파이는 데이터를 여러 개 넣을 때 하나의 데이터 타입만 지원한다. 그래서 데이터프레임도 칼럼(시리즈)별로 데이터타입이 일치해야 한다. 따라서 전체 데이터프레임에는 상이한 데이터타입이 들어가 있을 수 있다.

- 칼럼 이름을 선택할 수 있다 (SQL의 SELECT와 유사) (예: df.칼럼명 또는 df[칼럼명])

- 존재하지 않는 칼럼을 선택하면 새로운 칼럼을 추가하여 NaN을 채워둔다.

- 인덱싱에는 .loc[].iloc[]을 쓴다. loc은 인덱스 이름 자체로 본다. iloc은 인덱스의 수를 기준으로 본다. 예를 들어 인덱스가 49, 50, 1, 2 라면 loc[:1]은 49, 50, 1을 말하고 iloc[1]은 50을 말한다.

- 칼럼에 새로운 데이터를 할당하는 방법

 

Selection과 Drop

- 칼럼의 이름으로 select할 수 있다.

- 칼럼의 이름 없이 사용하는 index 숫자는 row 기준으로 표시한다. 칼럼 이름과 함께 사용할 경우 해당 칼럼 내에서 row index가 적용된다.

- .drop([인덱스])로 데이터프레임 안의 인덱스에 해당하는 row를 반환한다. 넘파이처럼 axis=k를 인자로 줄 수 있다. k가 0이면 row를 날리고, 1이면 column을 날린다고 보면 된다.

 

Replace 함수

 

apply for dataframe

- map은 시리즈의 각 요소마다 람다 함수를 적용할 수 있게 한다.

- apply는 시리즈 전체에 람다 함수를 적용할 수 있다. 입력값이 시리즈 데이터다. 각 칼럼별로 값을 리턴하게 된다. 그래서 통계 자료를 뽑을 때 유용하게 사용한다.

- apply를 응용하면 내장 연산 함수를 사용하는 것과 같은 효과를 낸다. .sum()은 .apply(sum)

- 시리즈 단위에 map과 apply 모두 사용 가능하지만, 보통은 apply와 applymap은 데이터프레임, map은 시리즈 단위에서 많이 사용된다.

 

데이터프레임 연산들

(1) 시리즈 연산

- 두 시리즈를 연산할 때에는 인덱스를 기준으로 연산을 수행하고 한쪽에는 있는데 다른 쪽에는 없을 경우 NaN으로 처리한다.

(2) 데이터프레임 연산

- 데이터프레임은 칼럼과 인덱스를 모두 고려해야 한다.

(3) 시리즈와 데이터프레임 연산

- 칼럼을 기준으로 broadcasting 발생

- axis=k 인자를 추가하면 axis를 기준으로 row broadcasting

 

내장함수

- .describe() 데이터의 요약 정보를 보여줌

- .unique() 시리즈 데이터의 유일한 값 리스트 반환

- .enumerate() 유니크를 한 후 이걸 적용하면 딕셔너리 타입으로 인덱스를 매겨 준다.

- .isnull() null 값의 인덱스를 반환. 결측치를 확인할 때 사용.

- sort_values() 칼럼 값을 기준으로 데이터를 정렬한다. 오름차순/내림차순 설정 가능

- .corr() 상관관계를 구함 .corrwith()는 다른 열과의 상관관계를 볼 수 있음

- .cov() 공분산을 구함

'Python' 카테고리의 다른 글

[스크랩] 크롤링  (0) 2019.08.23
numpy 라이브러리  (0) 2019.07.15
lambda, map, filter, reduce  (0) 2019.07.13
collections 모듈  (0) 2019.07.13
heapq 모듈  (0) 2019.07.10
Comments