본문 바로가기
공부/데이터 분석

[파이썬 데이터 분석 입문] Chapter 1

by sshnnne 2022. 8. 23.

1.4 파이썬 기본 구성 요소

1. 숫자

- 정수

- 실수

"{0.3f}".format(실수)

print문 사용 시 실수의 소수점 자리 지정해줌.

.3f는 소수점 3번째 자리까지 출력

 

- type 함수

: 자료형을 처리하는 방법에 대한 상세한 정보를 확인할 수 있다.

해당 변수가 정수형 or 실수형 or 문자열인지 알려줌

type(변수명)

코드 내 이름을 지닌 모든 것에 대해 type함수를 호출할 수 있다.

 

- math 모듈

from math import 함수명

exp : 자연상수 e의 거듭제곱

log : 자연로그

sqrt : 제곱근

 

- 문자열

{0:s} : s는 print문에 문자열 형식의 값이 전달된다는 것을 나타냄

 

- split()

첫 번째 인수 : 문자열 분할이 발생해야 하는 문자를 나타냄

두 번째 인수 : 분할이 수행될 횟수

(어떠한 인수도 없을 경우 기본값인 공백문자로 문자열을 나눈다.)

 

 

- join()

리스트에 속한 부분 문자열들을 단일 문자열로 결합

인수 : 부분 문자열들이 결합될 때, 부분 문자열 사이에 입력될 문자들

 

- strip()

원하지 않는 문자 삭제하는 함수

 

- replace()

문자열 내 하나의 문자 or 문자 집합을 다른 문자 (집합) 로 치환하는 함수

첫 번째 인수 : 문자열 내 존재하는 문자 (집합)

두 번째 인수 : 첫 번째 인수들을 대상으로 치환하고 싶은 문자 (집합)

 

- lower, upper, capitalize()

lower() : 문자열 내 영어를 소문자로 변환

upper() : 문자열 내 영어를 대문자로 변환

capitalize() : 문자열 내 첫 번째 문자에 upper 적용 + 남은 문자들에는 lower 적용

 

2. 정규 표현식과 패턴 매칭

- re 모듈

: 텍스트 내 정규 표현식 같은 특정한 패턴을 찾아주는 모듈

import re

다양한 종류의 메타 문자와 복잡한 패턴 생성 및 검색 기능 사용 가능

(*메타 문자 : 특별한 의미를 지닌 정규 표현식 문자들. ex) (), [], ., *, +, ?, !)

 

- re.compile()

: 텍스트 기반의 패턴을 정규 표현식으로 컴파일. 반드시 필요한 과정은 아니나 속도를 상당히 향상시킬 수 있기 때문에 수행해줌.

 

- re.I()

: 패턴이 대소문자 구분 없이 해준다.

 

- r 표기법

: 파이썬이 문자열 내에서 \, \t, \n 등과 같은 특별한 문자들을 따로 처리하지 않도록 해준다.

 

- (?P<이름>)

: 화면이나 파일에 출력할 문자열들을 찾기 위해 사용하는 메타 문자

 

- group()

: 화면이나 파일에 출력할 문자열들을 찾기 위해 사용하는 함수

 

3. 날짜

- datetime 모듈

from datetime import date, time, datetime, timedelta

date 객체 : 년, 월, 일 요소를 포함

datetime 객체 : 시간 요소들도 포함

 

timedelta

: 객체에 특정 시간을 더하거나 뺄 수 있음.

날짜, 초, 마이크로초 등 시간 단위를 저장 후 고유값으로 정규화한다.

 

4. 리스트

- min, max() : 리스트의 최솟값과 최댓값을 나타내는 함수

- len() : 리스트 내 원소들의 수를 알려줌

- count() : 리스트 내 특별한 값이 등장하는 횟수

 

- 리스트 분할

: 맨 앞부터 분할하는 경우 최초 인덱스 생략, 맨 뒤까지 리스트 분할하는 경우 마지막 인덱스 생략

 

- 리스트 복사

new_list = a_list[:]

 

- 리스트 병합

+ 연산자를 이용하여 2개 이상의 리스트 병합 가능

 

- in, not in

: 특정 원소의 리스트 포함 여부 확인 가능

if 2 in a_list:
    print("Output : 2 is in {}.".format(a_list))

 

- append() : 리스트 마지막에 원소 추가하는 함수

- remove() : 리스트 내 특정 원소 제거

- pop() : 리스트 마지막 원소 제거

- reverse() : 원본 리스트 반전

- sort() : 원본 리스트 정렬

- sorted() : 원본 리스트의 순서를 변화시키지 않고, 정렬된 새로운 리스트를 반환

 

- operator 모듈

from operator import itemgetter

각 리스트의 다양한 위치에 따라 리스트를 정렬할 수 있다.

(?)

itemgetter(3,0) : 3번째 인덱스에 위치한 값에 따라 리스트들을 정렬한 후, 정렬된 순서를 유지하면서 0번째 인덱스에 위치한 값에 따라 정렬을 수행

 

5. 튜플

one, two, three = my_tuple

할당 연산자의 왼편에 튜플을 풀어줌.

 

- tuple(리스트명) : 리스트를 튜플로 변환

- list(튜플명) : 튜플을 리스트로 변환

 

6. 딕셔너리

: 딕셔너리는 정렬되어 있지 않기 때문에 빠른 응답시간 제공 가능

 

- 딕셔너리 내 값 접근

변수명[문자열] : 특정 값에 접근 가능

 

- copy() : 딕셔너리 복사 함수

- keys() : 딕셔너리 키 값으로만 구성된 하나의 리스트

- values() : 딕셔너리 값으로만 구성된 하나의 리스트

- items() : 키값 쌍에 동시에 접근하는 함수

 

 

7. 축약

- 리스트 축약 (대괄호 사용)

rows_to_keep = [row for row in my_data if row[2] > 5]

: my_data의 각 행에 대해 만약 행의 두 번째 인덱스에 위치한 값이 5보다 큰 것만 남겨둠

 

- 집합 축약 (중괄호 사용)

set_of_tuples1 = { x for x in my_data }

set_of_tuples2 = set(my_data)

my_data의 각 튜플에 대해 고유한 튜플이라면 남겨둠

 

8. 함수

def라는 키워드로 시작하여 값 반환 시 return 키워드 입력

 

9. 예외

# try - except

실행할 코드를 try 블록 내부에 배치

except 블록을 이용하여 다른 오류들을 처리하고 도움이 되는 오류 메시지를 출력하도록 한다.

except문이 있는 줄에 as 추가한 후, 예외 값을 담을 변수명을 쓰면 예외 값에 접근할 수 있도록 한다.

 

10. 텍스트 파일 읽기

- sys 모듈

import sys

리스트 형식의 argv 변수를 사용할 수 있음.

해당 변수는 명령 줄 인수들로 구성된 리스트를 파이썬 스크립트로 가져온다.

 

input_file = sys.argv[1]
filereader = open(input_file, 'r')
for row in filereader :
    print(row.strip())
filereader.close()

1) sys.argv 리스트를 이용하여 읽을 파일의 주소를 얻은 후 input_file 변수에 얻은 주소 할당

2) filereader라는 파일 객체를 생성 후 open 함수로 Input_file을 읽기 모드로 연다

3) 연 파일 내용의 각 행을 저장한다

4) for문은 객체에 있는 행을 한 번에 하나씩 읽는다

5) for문 내부에서 각 행을 출력하는데, strip 함수를 사용해 각 행의 끝에 있는 공백, 탭, 개행문자 등을 제거한다

6) 입력 파일의 모든 행을 읽었으므로 객체를 닫는다

 

- 새로운 파일 읽기 문법

with문 사용

 

with문이란? 

자원을 획득 -> 자원 사용 -> 자원 반납 시 사용되는 구문

with expression as variables :
	block

 

with문을 사용하여 파일을 생성한 후, 자동으로 파일 객체를 닫는다.

 

- glob문

: 다수의 입력 파일을 읽고 처리하게 해줌

import os
import glob

os 모듈 : 경로 함수들 이용 가능

glob 모듈 : 특정 패턴과 일치하는 모든 경로명을 찾음

(결합 사용 시, 특정 폴더 내에 존재하는 특정 패턴을 지닌 파일을 찾을 수 있다.)

 

- 텍스트 파일 쓰기

write() : 개별 문자열을 파일에 작성

writelines() : 일련의 문자열을 파일에 작성