5-2. Python Data Handling

유승우·2022년 5월 2일
0

Python Data handling.html

CSV


  • 필드를 쉼표( , )로 구분한 텍스트 파일

  • 엑셀 양식의 데이터를 프로그램에 상관없이 쓰기 위한 데이터 형식이라고 생각하면 쉬움

  • 탭(TSV) , 빈칸(SSV) 등으로 구분해서 만들기도 함

  • 통칭하여 character-separated values(CSV) 부름

  • 엑셀에서는 "다른 이름 저장" 기능으로 사용 가능

  • Text 파일 형태로 데이터 처리시 문장 내에 들어가 있는 " , " 등에 대해 전처리 과정이 필요

  • 파이썬에서는 간단히 CSV파일을 처리하기 위해 CSV객체를 제공함

Web


  • World Wide Web(WWW), 줄여서 웹이라고 부름

  • 우리가 늘 쓰는 인터넷 공간의 정식 명칭

  • 데이터 송수신을 위한 HTTP 프로토콜 사용, 데이터를 표시하기 위해 HTML 형식을 사용

  • HTML

    • 웹 상의 정보를 구조적으로 표현하기 위한 언어
    • 제목, 단락, 링크 등 요소 표시를 위해 Tag를 사용
    • 모든 요소들은 꺾쇠 괄호 안에 둘러 쌓여 있음
      • Hello, World
    • 모든 HTML은 트리 모양의 포함관계를 가짐
    • 일반적으로 웹 페이지의 HTML 소스파일은 컴퓨터가 다운로드 받은 후 웹 브라우저가 해석/표시
  • 웹을 알아야 하는 이유

  1. 웹은 정보의 보고, 많은 데이터들이 웹을 통해 공유된다.
  2. HTML도 일종의 프로그램이고, 페이지 생성 규칙이 있으므로 규칙을 분석하여 데이터의 추출이 가능하다
  3. 추출된 데이터를 바탕으로 하여 다양한 분석이 가능

정규표현식


  • 복잡한 문자열 패턴을 정의하는 문자 표현 공식
  • 특정한 규칙을 가진 문자열의 집합을 추출
  • 문법 자체는 매우 방대, 스스로 찾아서 공부 필요
  • 정규식 연습장 (http://www.regexr.com/)

  • 기본 메타 문자
.모든 문자 일치
[]문자 집합 구성원 중 하나와 일치
[^]문자 집합 구성원을 제외하고 일치
-범위 정의
\ 다음에 오는 문자를 이스케이프

  • 수량자
문자의미
*앞의 문자가 0회 이상 연속으로 반복되는 문자열 탐색 ( 없는 경우도 탐색 )
+앞의 문자가 1회 이상 연속으로 반복되는 문자열 탐색
?앞의 문자가 0개 또는 1개인 문자열 찾기
{n}앞의 문자열이 n번 이상 연속으로 반복되는 문자열 탐색
{m,n}앞의 문자열이 m번에서 n번 반복되는 문자열 탐색

  • 위치지정
문자의미
^입력 문자열의 시작에서 그 다음 나오는 문자나 부분식과 일치하는지 검사
$문자열의 끝과 일치
\b단어 경계와 일치
\B\b의 반대 결과

  • 특수한 문자
문자의미
[\b]역스페이스
\cxx로 표시된 제어문자 찾기
\d모든 숫자와 일치( [0-9]와 동일)
\D\d와 반대 ( [^0-9]와 동일)
\f용지 공급 문자 찾기
\n줄 바꿈 문자 찾기
\r캐리지 리턴
\s공백, 택, 용지 공급 등과 같은 문자 찾기
\S\s와 반대
\t탭 문자 찾기
\v세로 탭 문자 찾기
\w모든 문자, 숫자
\W\w 반대
\xnn으로 표시된 16진수 이스케이프 값과 일치
\0nn으로 표시된 8진수 숫자와 일치

  • 대소문자 변환
문자의미
\E\L 혹은 \U 변환을 끝냄
\l다음에 오는 글자를 소문자로 변환
\L\E를 만날 때까지 모든 문자를 소문자로 변환
\u다음에 오는 글자를 대문자로 변환
\U\E를 만날 때까지 모든 문자를 대문자로 변환

  • 옵션
문자의미
i대소문자를 무시하고 찾음
g찾는 패턴을 하나만 찾지 말고 계속 해서 찾음
m다중행 모드

  • 우선순위
문자의미
\ 이스케이프
(),(?:),(?=),[]괄호 대괄호
*,+,?,{n},{n,},{n,m}수량자
^,$,\anymetacharacter앵커와 시퀀스

XML


  • 데이터의 구조와 의미를 설명하는 TAG를 사용하여 표시하는 언어
  • TAG와 TAG사이에 값이 표시되고, 구조적인 정보를 표현할 수 있음
  • HTML과 같이 mark up 언어로 문법이 비슷하고, 정규표현식으로 Parsing이 가능하다.
  • XML은 컴퓨터간(PC → 스마트폰)처럼 서로 다른 디바이스 끼리 정보를 주고받기 매우 유용한 저장 방식으로 사용된다.
  • 가장 많이 쓰이는 BeautifulSoup parser를 사용

JSON


  • 원래 웹 언어인 Java Script의 데이터 객체 표현 방식

  • 간결성으로 기계/인간이 모두 이해하기 편함

  • 데이터 용량이 적고, Code로의 전환이 쉬움

  • 이로 인해 XML의 대체제로 많이 활용되고 있음

  • json in python

    • json 모듈을 사용하여 손 쉽게 파싱 및 저장 가능
    • 데이터 저장 및 읽기는 dict type과 상호 호환 가능

0개의 댓글