CS log

[Data Analytics Study] Week2 - Ch5. 데이터 처리가 쉬운 판다스 본문

AI/Machine Learning

[Data Analytics Study] Week2 - Ch5. 데이터 처리가 쉬운 판다스

sj.cath 2024. 5. 20. 15:30

pandas

파이썬은 데이터 분석을 하기 위해서 여러가지 라이브러리를 사용한다.

이 패키지들 중 r의 데이터프레임 데이터 타입을 참고하여 만든 것이 바로 판다스 데이터프레임

 

특징

- 자동적/명시적 축의 이름에 따라 데이터를 정렬할 수 있는 데이터 구조

- 잘못 정렬된 데이터에 의한 오류를 방지하고, 다양한 방식으로 색인된 데이터를 다룰 수 있는 기능

- 통합된 시계열 기능 (시계열이란? 일반적으로 어떤 양의 관측결과를 일정한 기준에 따라 계열로 정리한 것을 통계계열이라고 한다)

- 시계열 데이터와 비시계열 데이터를 함께 다룰 수 있는 통합 자료구조

- 산술 연산과 한 축의 모든 값을 더하는 등 데이터 축약 연산은 축의 이름 같은 메타데이터로 전달될 수 있어야 함

- 누락된 데이터를 유연하게 처리할 수 있는 기능

- sql 같은 일반 데이터베이스처럼 데이터를 합치고 관계 연산을 수행하는 기능

 

판다스 객체 생성

1. 시리즈 : 레이블을 갖는 1차원 배열

  - 엑셀 문서의 하나의 열과 같다.

  - index라는 레이블을 갖음

 

2. 데이터프레임 : 레이블을 갖는 행과 열을 갖는 2차원 배열

  - 여러 개의 시리즈가 모이면 dataframe!

  - 외부 데이터를 pandas 모듈로 읽어들이면 자동으로 dataframe으로 된다.

 

판다스 데이터 확인

df.info() 함수는 데이터에 대한 전반적인 정보를 나타낸다. df를 구성하는 행과 열의 크기, 컬럼명, 컬럼을 구성하는 값의 자료형 등을 출력해준다. 

- 데이터의 개수 3653 entry, 행 인덱싱 번호 0~3652

- 열 변수 형식 출력 : 실수 float, 문자열 object

- 결측치 개수가 나타남 : max_wind, mena_wind 변수에는 결측치가 있음

 

결측 데이터 삭제하기

판다스에서 dropna() 함수를 이용하여 삭제한다.

dropna(axis, how, thresh, subset, inplace)

1) axis 

- 축을 행 또는 열로 결정한다.

- 0또는 'index'이면 누락된 값이 포함된 행을 삭제한다.

- 1또는 'columns'면 누락된 값이 포함된 열을 삭제한다.

- 기본적으로 값은 0으로 설정되어 있다.

 

2) how

- any는 null 값이 있는 경우 행 또는 열을 삭제한다.

- all은 모든 값이 누락된 경우 행 또는 열을 삭제한다.

- 기본적으로 any로 설정한다.

 

3) inplace

- true로 설정하면 호출자 dataframe을 변경하는 부울 값이다.

- 기본적으로 값은 false로 설정되어 있다.

 

컬럼 이름 변경하기

dataframe.columns = ['새이름1', '새이름2', ...]

- 전체 변수 이름을 재설정한다.

- 변수명을 차례로 재설정한다. 변수가 많은 경우 적절하지 않다.

 

dataframe.rename(columns{'기존이름':'새이름'}, inplace=True}

- 원하는 변수 이름만 수정한다.

- 딕셔너리 구조로 정의한다. 즉, 이전 열 이름을 키로 지정하고 새 이름을 값으로 지정한다.

 

판다스 데이터 가공

date 칼럼이 숫자형(int)으로 지정되어있다. 숫자 형식은 문자 형식으로 변환해야 한다. astype(str)문자열 형식으로 변환하고 데이터 길이 날짜 형식 8자리에 적합하게 str.slice()를 사용하여 첫 8자리만 지정한다.

dust['date']=dust['date'].astype(str)
dust['date']=dust['date'].str.slice(0,8)
dust.dtypes

 

 

 

데이터 병합하기

merge() 함수는 두 데이터프레임을 각 데이터에 존재하는 고유값을 기준으로 병합할 때 사용한다.

pd.merge(df_left, df_right, how='inner', on=None)

- 아무런 옵션도 적용하지 않으면, on=None이므로 두 데이터의 공용 열 이름(id)을 기준으로 inner(교집합)을 조인하게 된다.

- outer 옵션을 적용하면 id를 기준으로 합치는데, 어느 한쪽에라도 없는 데이터가 있는 경우 NaN 값이 지정된다.

- 왼쪽에 입력한 데이터프레임 기준(how='left')으로 각각의 key 값에 해당하는 열을 지정한다.

- 오른쪽에 입력한 데이터프레임 기준(how='right')으로 각각의 key 값에 해당하는 열을 지정한다.