파이썬 데이터 검색
TRANSCRIPT
![Page 1: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/1.jpg)
1
PYTHON DATA검색방법
Moon Yong Joon
![Page 2: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/2.jpg)
2
1. GETITEM2. GET ATTRIBUTE
3. 내장 타입4. PANDAS
목차
![Page 3: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/3.jpg)
3
1. GETITEM
Moon Yong Joon
![Page 4: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/4.jpg)
4
__GETITEM__ Moon Yong Joon
![Page 5: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/5.jpg)
Special method : 2/3 버전 통합
![Page 6: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/6.jpg)
특징Sequence 타입 안에 들어있는 원소를 접근하는 법
index
slice
실제 원소에 값을 직접 접근하는 법
특정 원소들을 가지는 부분 집합으로 검색하는 방법
![Page 7: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/7.jpg)
Container 내부 조회 / 갱신 / 삭제List,dict 에 대한 원소를 조회 , 갱신 , 삭제를 추가하는 메소드 , list 는 index 에 범위내에서만 처리됨
object.__getitem__(self, key)
object.__setitem__(self, key, value)
object.__delitem__(self, key)
검색
생성 / 변경
삭제
![Page 8: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/8.jpg)
8
__getitem__ 이해__getiem__ 메소드는 인스턴스 내부의 항목을 in-dex 나 slice([ ] 연산자 ) 로 처리해 결과를 리턴
![Page 9: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/9.jpg)
9
INDEXINGMoon Yong Joon
![Page 10: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/10.jpg)
10 단건 항목 검색 : list
![Page 11: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/11.jpg)
11
객체 내부 조회Indexing 은 단건 조회를 하며 index 범위를 아닐 경우 index error 처리
![Page 12: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/12.jpg)
12
객체 내부 조회 : itemgetterIndexing 은 단건 조회를 하며 index 범위를 아닐 경우 index error 처리
![Page 13: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/13.jpg)
13 복수건 항목검색 : list
![Page 14: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/14.jpg)
14
객체 내부 조회 : itemgetterIndexing 은 인덱스를 나열해서 복수건 조회
![Page 15: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/15.jpg)
15 단건 항목검색 : dict
![Page 16: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/16.jpg)
16
객체 내부 조회Indexing 은 단건 조회를 하며 key 범위를 아닐 경우 key error 처리가 발생하므로 get 메소드 처리
![Page 17: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/17.jpg)
17
객체 내부 조회 : itemgetterIndexing 은 단건 조회를 하며 key 범위를 아닐 경우 key error 처리
![Page 18: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/18.jpg)
18 복수 항목건 검색 : dict
![Page 19: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/19.jpg)
19
객체 내부 조회 : itemgetterIndexing 은 key 를 나열해서 범위내의 복수건 조회
![Page 20: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/20.jpg)
20 함수 검색
![Page 21: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/21.jpg)
21
itemgetter : 함수 호출 함수를 검색한 경우 이를 실행할 수 있도록 ( ) 호출연산자를 처리
![Page 22: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/22.jpg)
22 defaultdict 타입
![Page 23: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/23.jpg)
23
defaultdict 클래스 defaultdict 클래스는 인스턴스를 만들고 이를 기반으로 내부의 원소를 추가할 수 있음 임의의 키를 검색시 Default 값이 출력됨
![Page 24: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/24.jpg)
24
defaultdict 클래스 내부 구조 defaultdict 에 선언한 속성들은 실제 클래스 내부에 생기지 않아 객체 내부에서만 관리됨
![Page 25: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/25.jpg)
25
itemgetterDefaultdict 타입은 [ ] 연산자로 조회가 가능하므로 itemgetter 를 이용해서 내부를 검색
![Page 26: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/26.jpg)
26 사용자 클래스 정의
![Page 27: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/27.jpg)
27
사용자 정의 클래스 이용Indexing 처리 방식을 클래스를 이용해서 정의 후에 사용하기
![Page 28: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/28.jpg)
28
SLICINGMoon Yong Joon
![Page 29: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/29.jpg)
29 Slicing 검색
![Page 30: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/30.jpg)
30
내장 객체 조회Slicing 은 여러 건을 조회도 가능하지만 결과는 별도의 객체를 만듦
![Page 31: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/31.jpg)
31 Slicing class 이용 검색
![Page 32: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/32.jpg)
32
내장 객체 조회Slicing 조건을 slice 인스턴스로 만들어서 객체를 조회하도록 함
![Page 33: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/33.jpg)
33
2. GET
ATTRIBUTEMoon Yong Joon
![Page 34: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/34.jpg)
34
__GETATTRIBUTE__
Moon Yong Joon
![Page 35: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/35.jpg)
35
__getattribute__ 이해 __getattribute__ 메소드는 인스턴스 내부의 속성을 (. 연산자 ) 로 처리해 결과를 리턴
![Page 36: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/36.jpg)
36
속성 조회Moon Yong Joon
![Page 37: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/37.jpg)
37 단건 항목 조회
![Page 38: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/38.jpg)
38
객체 내부 조회 : . . 연사자를 이용한 내부 속성 단건 조회 및 범위가 벗어나면 attribute error
![Page 39: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/39.jpg)
39
객체 내부 조회 : getattr 함수 . 연사자를 이용해서 속성을 조회시 없는 경우 오류가 발생하므로 getattr 함수를 이용해서 처리
![Page 40: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/40.jpg)
40
객체 내부 조회 : attrgetter . 연사자를 대체하는 attrgetter 메소드를 이용한 내부 속성 단건 조회
![Page 41: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/41.jpg)
41 복수 항목건 조회
![Page 42: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/42.jpg)
42
객체 내부 조회 : attrgetter . 연사자를 대체하는 attrgetter 메소드를 이용한 내부 속성 단건 조회
![Page 43: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/43.jpg)
43 메소드 검색
![Page 44: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/44.jpg)
44
Attrgetter : 메소드 호출 메소드 검색한 경우 이를 실행할 수 있도록 ( ) 호출연산자를 처리
![Page 45: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/45.jpg)
45 namedtuple
![Page 46: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/46.jpg)
46
Namedtuple 구조 이해 namedtuple 은 함수로 새로운 클래스를 만들고 이 클래스를 기반으로 인스턴스를 생성
![Page 47: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/47.jpg)
47
Namedtuple 로 만든 클래스 구조 namedtuple 에 선언한 속성들은 실제 클래스 내부에 생김
![Page 48: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/48.jpg)
48
attrgetter namedtuple 타입은 . 연산자로 조회가 가능하므로 attrgetter 를 이용해서 내부를 검색
![Page 49: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/49.jpg)
49 사용자 클래스 정의
![Page 50: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/50.jpg)
50
사용자 정의 클래스 이용. 연산자 (__getattribute__) 처리 방식을 클래스를 이용해서 정의 후에 사용하기
![Page 51: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/51.jpg)
51
3. 내장 타입
Moon Yong Joon
![Page 52: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/52.jpg)
내장 타입
![Page 53: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/53.jpg)
내장 타입 비교String 타입을 제외하고 index 와 slice 는 다른 타입으로 처리됨
![Page 54: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/54.jpg)
Bytearray
![Page 55: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/55.jpg)
내장 타입 : Bytearray
Bytearray 타입도 index 로 접근해서 결과를 조회결과값은 숫자로 표시
![Page 56: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/56.jpg)
내장 타입 :Bytearray 슬라이싱 Bytearray 타입도 슬라이싱 처리하고 슬라이스된 부분을 갱신
![Page 57: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/57.jpg)
Array.array
![Page 58: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/58.jpg)
Array 모듈Array 모듈에서 array 객체를 생성해도 index 와 slicing 은 별도의 타입으로 처리
![Page 59: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/59.jpg)
59
4. PANDAS
Moon Yong Joon
![Page 60: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/60.jpg)
Series index/slice
![Page 61: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/61.jpg)
Series 조회 : indexList 처럼 인덱스를 조회해서 원소를 검색
![Page 62: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/62.jpg)
Series 조회 : sliceSeries 의 slice 는 순서를 표시하므로 index 가 문자여도 가능
![Page 63: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/63.jpg)
Series 조회 : index 직접 대응Series 의 ndarray 처럼 조회조건에 index 를 리스트넣어 검색 가능
![Page 64: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/64.jpg)
Series 조회 : 논리식Series 의 ndarray 처럼 조회조건도 논리식으로 처리가 가능
![Page 65: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/65.jpg)
list 타입을 통한 indexPandas 모듈의 데이터 타입 (Series, DataFrame 등 )에서는 key 값을 리스트 타입으로 호출시 해당값을 처리
![Page 66: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/66.jpg)
검색결과가 view Pandas 모듈의 데이터 타입 (Series, DataFrame 등 )에서 Slice 는 기존 타입의 view 를 보여주므로 갱신하면 원 객체를 변경함
![Page 67: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/67.jpg)
DataFrame index/slice
![Page 68: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/68.jpg)
DataFrame 단일 열 검색DataFrame 은 단일 열을 인덱스 방식 ([ ])
행
열 col1
row1row2
row3
col2
![Page 69: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/69.jpg)
DataFrame 멀티 열 검색DataFrame 은 멀티 열은 슬라이스 방식 ([ [ , ] ])을 사용하지만 칼럼명을 리스트로 작성해서 검색
행
열 col1
row1row2
row3
col2
![Page 70: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/70.jpg)
DataFrame 단일 행 검색DataFrame 은 단일 행을 인덱스 방식 ([ ])
행
열 col1
row1row2
row3
col2
![Page 71: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/71.jpg)
DataFrame 멀티 행 검색DataFrame 은 멀티행을 슬라이싱 방식 ([ : ]) 을 사용하지만 이름으로 검색시에는 해당 이름까지 포함해서 처리
행
열 col1
row1row2
row3
col2
![Page 72: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/72.jpg)
DataFrame 행과열 검색 1DataFrame 은 ix 속성을 이용해서 행과 열을 동시에 검색 ([ 행 ( 슬라이싱 : ), 칼럼 ( 명 ) ])
행
열 col1
row1row2
row3
col2
![Page 73: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/73.jpg)
DataFrame 행과열 검색 2DataFrame 은 ix 속성을 이용해서 행과 복수의 열을 동시에 검색 ([ 행 ( 슬라이싱 : ), [ 칼럼명 , 칼럼명 ])
행
열 col1
row1row2
row3
col2
![Page 74: 파이썬 데이터 검색](https://reader030.vdocuments.site/reader030/viewer/2022021417/58776ac81a28ab5b568b49d3/html5/thumbnails/74.jpg)
row 접근시 슬라이싱 계산차이행 기준으로 접근시 DataFrame 으로 슬라이싱과 속성에서 슬라이싱하는 경우 실제 출력되는 개수가 다름