[DSAC M1] Pandas(판다스) - DataFrame, Series 기본 개념

실습은 주피터로 하였고, kpc의 DSAC Module1 DATA Programming을 참고했습니다.

 

[Pandas]

-  Panel data analysis(구조화된 데이터 분석)의 줄임말

- 데이터를 수집하고 정리하는 데 최적화된 도구

- 판다스 라이브러리는 DataFrame, Series이라는 데이터 형식 제공

 

 

[DataFrame]

- 파이썬에서 데이터를 편리하게 다루기 위해 테이블 구조로 데이터를 처리하는 경우가 많음. 이를 위해 판다스의 데이터프레임을 이용함.

- 데이터프레임은 2차원 테이블 구조로 데이터를 다룸 (엑셀 스프레드시트처럼!)

- 데이터프레임에서 표를 table(테이블), 행은 row/record, 열은 field/column, 가장 위에있는 행은 field name이라고 함.

 

Pandas를 pd라는 이름으로, numpy는 np라는 이름으로 사용하겠다고 선언했다.

그리고, DataFrame 함수를 이용해서 딕셔너리 데이터로부터 데이터프레임을 만들었다.

 

결과를 보면, 인덱스가 0부터 1씩 증가하며 자동 생성된다. (사용자가 지정할 수도 있음)

딕셔너리의 key가 field name이 되는걸 확인할 수 있다.

 

 

-인덱스나 column(열)을 사용자가 지정할 수 있다.

data.index로 인덱스를 a,b,c,d,e로 바꿔주었다.

 

data.columns로 열 이름을 변경하였다.

 

 

- 데이터프레임에서 특정한 column(열)의 내용을 얻기

1) 컬럼명으로 접근 data['a']

2) 속성값으로 접근 data.a

 

 

- 데이터프레임에서 특정한 row(행)의 내용을 얻기

1) 인덱스 사용

특정 행을 얻기 위해서는 loc()를 사용하면 된다.

loc는 label location의 약자이며 인덱스를 사용하여 정보를 얻는다.

2) 행의 위치 지정 - iloc() 사용

iloc는 integer location의 약자이다.

: 를 사용해서 행의 범위를 지정했다.

 

 

- loc vs iloc

: 로 행의 범위를 지정할때, ⭐loc는 끝번호를 포함하지만, iloc는 포함하지 않는다.

 

 

- 인덱스 재배정

set_index()로 인덱스를 임의의 column으로 재배정할 수 있다.

함수만 실행하면 원본 데이터가 바뀌지 않아서, 실행한 결과를 data에 다시 넣어주었다.

하지만, inplace=True 속성을 넣으면, 원본 데이터가 변경된다.

 

 

- 새 column 추가

새로운 column을 추가하기 위해서는 현재 없는 column명을 인자로 주면 새로운 column이 자동으로 생성된다.

 

 

- 특정 조건에 맞는 항목 찾기

high 컬럼을 추가하여 기온이 20도 이상인 도시를 True, 나머지는 False로 표시하는 코드 작성!

temp가 20도 이상이면 True, 미만이면 False로 출력되는걸 확인할 수 있다.

 

 

- 특정 column 삭제

set_index()와 마찬가지로 원본 데이터를 변경하려면 inplace = True 속성값을 넣어주어야 한다.

인자의 두번째 값으로 0 또는 1을 줄 수 있는데, 1의 의미는 column을 기준으로 삭제하라는 뜻이다.

 

 

- 람다 함수, apply

함수를 편리하게 데이터에 일괄 적용하려면 apply를 사용하면 된다.

예시로 람다를 이용하여 최대값-최소값을 계산하는 함수를 정의하고, 데이터에 적용하겠다.

우선 람다 함수의 주소를 가지고 있는 변수 f를 생성했다.

0~11까지의 데이터를 만들고, 4행 3열로 데이터프레임을 생성했다.

columns는 A,B,C로 index는 a,b,c,d로 생성.

 

apply함수는 기본적으로 열 정보가 들어가 있다. 그래서 예시의 결과도 각 열의 최대값 - 최소값이다.

행 계산을 하기 위해서는 apply(f,1)로 하면 된다.

 

 

 

[Series]

- 판다스에서 제공하는 객체. column이 하나뿐인 데이터프레임이다. (즉, 특수한 구조의 데이터프레임)

- 즉, 1차원 배열의 형태. 파이썬의 딕셔너리와 구조가 비슷함

 

파이썬의 딕셔너리로 시리즈를 생성했다.

 

파이썬의 리스트로 시리즈를 생성하면 key에 인덱스 번호가 들어간다.

320x100