Python을 활용한 데이터 분석 #2

이온·2023년 6월 24일
0

Python

목록 보기
2/4

1. 자료구조(Dictionary, Set)

(1) 딕셔너리(Dictionary)

• 키(Key)와 값(Value)의 순서쌍으로 구성된 자료 구조
• 요소들의 저장 순서가 없어서 더 빠르게 데이터에 접근 가능
• 키(Key)는 중복되지 않고, 키값으로 인덱싱되어 해당값에 접근
• 중복되는 경우, ‘임의의’ 하나를 제외한 나머지는 무시
• n개의 요소(element)를 갖는 딕셔너리 선언문

딕셔너리이름 = {1:1,2:2, ..., 키n:값n}

딕셔너리(Dictionary) – get() Method

• 인수로 전달한 키에 해당하는 값을 반환
• 딕셔너리안에 전달한키가 없으면 아무것도 반환하지 않음(None)

딕셔너리이름.get(접근할 요소의 키)

딕셔너리(Dictionary) – 키/값/요소 확인하기

• 선언된 딕셔너리에 속한 키, 값, 요소를 확인하는 메소드

딕셔너리이름.keys() 
딕셔너리이름.values() 
딕셔너리이름.items()

• 딕셔너리에 포함된 요소 갯수 확인

len(딕셔너리이름)

딕셔너리(Dictionary) – 요소 추가

• 딕셔너리에 새로운 키, 새로운 값을 할당하면 선언된 딕셔너리에 새 요소 추가 가능
• 리스트에서 새 요소를 추가하기위해 사용했던 append와 유사한 기능

딕셔너리이름[새로추가할요소의키]=

딕셔너리(Dictionary) – 요소 수정

• 선언된 기존 딕셔너리에 있던 기존 키에 새로운 값을 대입
• 요소 추가에서 사용했던 방식과 유사

딕셔너리이름[수정할요소의키]=새로운 값

딕셔너리(Dictionary) – 요소 삭제

• 선언된 딕셔너리에 있던 특정 키와 연관된 값을 삭제하거나, 모든 요소 삭제 가능
• 특정 요소삭제

del 딕셔너리이름[삭제할요소의키]

• 모든 요소삭제

딕셔너리이름.clear()

(2) Set : 집합형 자료구조

• 순서도, 중복도 없는 자료형
• 집합연산(합집합,차집합,교집합)을 지원

set이름 = {1,2, ..., 값n}

Set : 요소 추가

• 요소 1개추가

set이름.add(‘새요소’)

• 요소 여러개추가

set이름.update(‘새요소1,...,’새요소k’)

Set : 요소 삭제

• 특정 요소삭제

set이름.remove(‘기존요소’)

• 전체 요소삭제

set이름.clear()

Set : 교집합/합집합/차집합

• 교집합 연산

set1 & set2
set1.intersection(set2)

• 합집합 연산

set1 | set2
set1.union(set2)

• 차집합 연산

set1 - set2 
set1.difference(set2)

복합 자료형 비교

2. 파일입/출력 :json,csv파일읽기,처리,변환

CSV 파일 읽기

• Pandas 라이브러리를 활용해 csv 파일을 데이터프레임으로 읽어올 수 있다.
• 판다스 라이브러리 호출

Import pandas as pd

• 특정 경로에 저장된 csv 파일을 데이터 프레임으로 생성

infor2020 = pd.read_csv('/content/drive/health_infor2020.csv')

JSON(JavaScript Object Natation)

• "키-값"으로 이루어진 데이터 오브젝트를 전달
• 사람이 읽고 쓰고, 기계가 분석하고 생성하기 용이
• 개방형 표준 포맷이고, 구조에 제한이 없다.

json.loads : Json 타입 문자열 -> 딕셔너리 객체

• JSON형식을 읽고 변환하기 위한 내장 라이브러리 호출

Import json

• JSON형식으로 작성된 문자열을 Python 딕셔너리 객체로 변환

json_object = json.loads(json_string)

json.dumps() : Python 딕셔너리 객체 -> JSON 문자열

• 딕셔너리 객체를 JSON형식으로 작성된 문자열로 변환

json_string = json.loads(json_object)

json.load() : JSON 파일을 읽어오는 함수

• 특정 경로에 있는 JSON파일을 읽어옴

json_object = json.load(open(' fileName.json ', ' r ' , encoding='utf-8') )

• Withopen: 활용하는 경우

with open(' fileName.json ', ' r ' , encoding='utf-8') as f : json_object = json.load(f)

3. 대용량데이터처리(Iterator,Generator)

Iterable

• iterable 객체: 차례로 하나씩 반복해서 반환할 수 있는 객체
Ex) List, Set, Tuple, Dictionary

• iterator 객체: 값을 차례대로 꺼낼 수 있는 객체
• next() 메소드로 데이터를 순차적으로 호출할 수 있다.
• Iterable object ↛ iterator
• List는 iterator가 아니지만, for 반복문에서 임시로 iterator로 쓰임

Generator : Iterator를 생성해 주는 함수

• 코드예시

Def generator(n) : 
...
yield x

• generator 의 경우 데이터 값을 한번에 메모리에 올리지 않고, next() 메소드를 통해 차례로 값에 접근할 때마다 함수를 수행한 결과를 산출
• 리스트 규모가 클수록, 메모리를 절약할 수 있어 generator가 더효율적
• 명확한 끝이 없는 데이터스트림처럼, 무한하고 순서가 있는 객체를 다룰 수 있다.

https://bluese05.tistory.com/56
https://wikidocs.net/16069

4. 유용한 파이썬 함수(Lambda, Map, Filter)

Lambda 함수

: 한 줄 짜리 이름 없는 함수
• 자주 쓰지 않는 기능인 경우,함수로 생성하면 코드가 너무 복잡하고 길어짐
• 람다형식으로 이름없는 함수를 생성해 한 줄로 처리
• 인수를 받을 수 있으며,새로운 변수를 생성하거나 기존변수를 변경하지 않음
• 람다함수선언

Lambda : (필요한 동작)(인수)

map 함수

• 리스트나 딕셔너리같은 iterable 데이터를 인자로 받는다.
• 리스트에 속한 각각의 원소를 함수의 인자로 전달
• 원소를 함수에 대입한 결과를 반환
• map 함수 구문

map(함수, 인자가 들어있는 리스트)

filter 함수

• 리스트, 딕셔너리같은 iterable 데이터를 인자로 받는다.
• 함수결과가 True인 경우인iterable 데이터의 원소만 반환한다.
• filter 함수 구문

filter(함수, 인자가 들어있는 리스트)
profile
👩🏻‍💻

0개의 댓글