ALL NIGHT STUDY

Pandas(Python Data Analysis Library)

with_AI 2021. 9. 16. 02:06

데이터 조작 및 분석을 위한 Python 프로그래밍 언어 용으로 작성된 소프트웨어 라이브러리 입니다 . 특히 숫자 테이블과 시계열 을 조작하기 위한 데이터 구조 와 연산을 제공합니다

DataFrame

테이블 형식의 데이터 (tabular, rectangular grid 등으로 불림)를 다룰 때 사용한다.

Data Set

하나 이상의 데이터베이스 테이블에 해당하며 , 테이블의 모든 열 은 특정 변수를 나타내고 각 행은 해당 데이터 세트의 주어진 레코드에 해당한다.

Data Set을 DataFrame 형식으로 나타내면 아래 그림과 같다.

 

column: age, sex, cp 등 열이 어떻게 구성되어야 할 지에 대한 구조를 제공한다. (Data Set의 Feature라고도 한다.)

row: 레코드(record) 또는 튜플(tuple)로 불리기도 하며, 어떤 테이블에서 단일 구조 데이터 항목을 가리킨다. (index라고도 한다.)

결측치: Na, Null, NaN, 0, Undefined

undefined: 선언은 되었으나 값이 할당 되지 않은 상태

null: 아무런 값도 나타내지 않는 특수한 값 (초기화 해주어야 null 상태가 존재 할 수 있음)

NaN: JS에서만 존재하는 '숫자가 아니다'를 의미하는 값

Na와 NaN는 하나의 값 으로 인식하는 반면 NULL은 값 자체가 없음

0: 값에 숫자 0이 들어있는 경우

Na: not available

NaN: Not a Number

String Replace

일반적으로 머신러닝 모델링에서는 문자열로 이루어진 값은 사용하지 않습니다. (매우 복잡한 문제입니다.)

  1. 문자를 숫자로 바꾸기 위해 숫자가 아닌 부분을 제거
  2. 문자를 숫자로 형변환 (type casting)

형 변환(Type casting)

변수의 type을 강제로 다른 type으로 변경하는 것

형 변환이 왜 필요할까?

우리가 자주 사용할 머신러닝 라이브러리인 사이킷런은 문자열 값을 입력 값으로 처리하지 않기 때문에 숫자형으로 변환해야 한다. 따라서 이 때 변환 할 때 형 변환이 중요하다.

 

int() - 정수형으로 바꿈

float() - 실수형으로 바꿈

str() - 문자열로 바꿈

hex() - 16진수로 바꿈

oct() - 8진수로 바꿈

bin() - 2진수로 바꿈

tuple() - 튜플로 변환

list() - 리스트로 변환

set() - Set형으로 변환

 

 

 

  • pandas 객체에 열 혹은 행에 대해 함수를 적용하게 해주는 메서드
  • 데이터의 모든 문자열에 대해서 일일히 함수를 반복 할 수는 없어서 사용하는 함수

Apply( ) 예시

def tofloat(str):
  ans = float(str.replace(',',''))
  return ans

for col in headers:
  try:
    if col != '분기' and (df[col].dtypes == object) :
      df[col] = df[col].apply(tofloat)
  except:
    pass

사용자 정의 함수 tofloat( )을

df의 '분기'를 제외한 모든 columns에 적용하는 예제이다.

예를 들어 한 records에 13,258 라는 값이 들어있었다면,

str 자료형을 float으로 바꾸면서, 13258.0 이라는 값으로 저장되게 한다.

따라서 Apply( )는

사용자 정의 함수, 내장 메소드 등 어떠한 함수를 행과 열에 반복문 없이 적용 시킬 수 있는 장점이 있다.

'ALL NIGHT STUDY' 카테고리의 다른 글

Tidy 데이터  (0) 2021.09.16
Concat/Merge  (0) 2021.09.16
Feature Engineering  (0) 2021.09.16
데이터 전처리(Pre-Processing)  (0) 2021.09.16
EDA(Exploratory Data Analysis)  (0) 2021.09.16