[Python] Data Munging

jaylight·2020년 12월 2일
0

Data Munging (Data Wrangling)

  • Raw Data를 또다른 형태로 수작업으로 전환하거나 매핑하는 작업
  • ETL (추출/export, 변형/transform, 로드/load)의 작업이라고 볼 수 있음

데이터 과학(Data Science)
데이터베이스의 ETL 요구사항을 넘어서 사람 눈에 보이지 않는 통찰력을 발견하기 위해 머신 러닝을 사용

Python에서 Data 형식에 따른 타입

  1. text (텍스트)
    • string: Unicode 문자 시퀀스 (in Python2: 바이트 배열)
  2. binary (2진수)
    • byte (8비트, 불변)
    • byte 배열 (가변)

1. text: string(문자열)

Python3의 문자열은 byte 배열이 아닌 유니코드 문자 시퀀스다.

ASCII (American Standard Code for Information Interchange)

  • 컴퓨터의 기본 저장 단위는 byte (8비트(256개 값을 저장))이며, ASCII는 7비트만 사용
  • 26개의 대소 문자, 숫자 10개, 문장부호, 공백 문자, 비인쇄 제어 코드로 구성

UNICODE

  • 유니코드 문자열은 국가별로 독자적인 문자열 인코딩을 사용하는 것을 해결하기 위해 국제 표준화 기구에서 만든 표준, ASCII 코드에서 제공하지 않는 많은 문자와 기호, 이모티콘 등을 지원
  • 각 문자는 고유한 이름식별 번호가 있으며, 유니코드 평면(Plane)이라고 하는 8비트 세트로 분할
    - 첫 번째 256 평면은 기본 다국어 평면(BMP)

UNICODE의 식별자(ID), 문자에 대한 이름을 안다면, 문자를 파이썬에서 사용 가능하다.

  • UTF-16의 경우 4자리의 16진수로 구성되어 있는데,
    앞의 두 숫자는 평면 번호
    뒤의 두 숫자는 평면 상 문자의 인덱스를 의미한다.
    (평면 번호00인 경우, ASCII 코드이며 인덱스는 ASCII 코드와 번호가 같다.)
  • 높은 평면의 문자일수록 비트 수가 더 필요하다.
    이에 대한 파이썬의 이스케이스 시퀀스는 \U이며, 숫자에 남는 공간이 있다면 왼쪽에 0을 채운다.
  • 모든 문자는 표준이름 \N{name}으로 지정할 수 있다.
    유니코드 문자 이름 인덱스 페이지 참조

파이썬 unicodedata 모듈: 유니코드 식별자와 이름으로 검색할 수 있는 함수를 제공

  • lookup(): 인수로 대소 문자를 구분하지 않는 이름을 취함 → 유니코드 문자를 반환
  • name(): 인수로 유니코드 문자를 취함 → 대문자 이름을 반환

파이썬에서 유니코드를 표시하는데 있어 발생할 수 있는 잠재적 문제는
사용하는 글꼴에서 텍스트를 표시하는데 있어 제한이 있는 경우 외에는 없다.

0개의 댓글