매직 메소드 특별한 의미를 가지고 있는 미리 정의된 메소드들이다. 메소드 이름 앞뒤에 _가 붙어있는 메소드 던더 메소드라고도 한다.(던더는 더블 언더의 준말이다.) 생성자 Constructor : __init__ 객체가 생성될 때, 인터프리터에 의해서 자동으로 호출되는 메소드 객체변수의 초기화 객체가 생성될 때 모든 만들어질 객체가 기본으로 이정도는 동일한 속성으로 가지고 가게 하고 싶다면 객체가 실행될 때 생성자가 실행된다는 것 객체가 갓 만들어졌다 라는 것을 의미합니다. 생성자를 통해 객체변수에 초기화할 수 있다. 실습 생성자에 이름, 나이를 같이 입력받아야 인스턴스가 생성되도록 수정해주시고, __add__라는 던더메소드를 둘의 이름과 나이의 합을 출력하는 메서드로 변경해주세요. class Perso..
절차 지향 프로그래밍 절차적 프로그래밍 언어는 메인 함수의 기준으로 함수를 절차적으로 실행하는 프로그래밍 언어이다. 호출된 함수에 맞춰서 여러개의 데이터들이 복사해서 관리하는 시스템이다.(기능과 데이터의 불일치) 객체 지향 프로그래밍 절차적 프로그래밍의 단점을 극복하기 위해서 만든 프로그래밍 언어이다. 데이터와 기능을 주제별로 따로 만들어 놓고, 필요한 부분을 불러올 수 있다. 예시) - TV (객체1) - 동작(기능) = 메소드, 함수 - 켜다 - 끄다 - 소리를 키우다 - 채널을 돌리다 - 속성 = 데이터 - LED - 50KG - 검은색 - 사람 (객체2) - 먹다 - 보다 - 듣다 - 프로그래밍하다 - 성별 - 몸무게 NKG - 소파 (객체3) - 흰색 - 100KG 위와 같이 그때그때 상황에 맞..
클래스 본인은 class 개념에 관해서, 많은 공간을 활용하여서 정리하려고 합니다. 첫째로, 클래스를 자기소개서에 비유할 수 있습니다. 만약 김사원이 A라는 회사에 지원한 사람들의 자소서를 관리한다고 해봅시다. 김사원은 age나 name이란 변수를 그대로 써서 '자소서'라는 클래스에 저장할 수 있습니다. 클래스의 기초 원리를 코드를 사용하여 설명해 보겠습니다. class JSS: def __init__(self): print('JSS 클래스 선언!') def show(self): print('show 실행!') a = JSS() a.show() JSS 클래스 선언! show 실행! 여기서 init 함수가 아닐 경우에는 a.show()처럼 함수명 뒤에()을 붙여줘야지 실행이 됩니다. self란? 클래스 안..
셋 타입 set(집합) set은 순서가 없는 자료형이다. 중복이 안된다는 특징이 있다. set1 ={1, 2, 3, 4, 2, 5, 5} set2 = {3, 4, 5, 7, 8, 10} set1 {1, 2, 3, 4, 5} set은 수학적 집합 연산(교집합, 합집합, 차집합)을 제공한다. 교집합 set1 & set2 {3, 4, 5} set1.intersection(set2) {3, 4, 5} 합집합 set1 | set2 {1, 2, 3, 4, 5, 7, 8, 10} set1.union(set2) {1, 2, 3, 4, 5, 7, 8, 10} 차집합 set2 - set1 {7, 8, 10} set2.difference(set1) {7, 8, 10} set 자료형을 다른 자료형으로 만들수 있다. list(..
데이터프레임을 조작하다 보면 정의해놓은 함수에 따라서 전체 프레임이나 특정한 column의 값들을 일괄적으로 변경할 때 익명 함수와 어플라이 함수를 많이 사용한다. 어플라이 함수 어플라이 함수를 사용하여 데이터프레임을 간편하게 조작하여 보자. 먼저 특정 함수를 만들어, 어플라이 함수를 사용하여 데이터프레임의 특정 칼럼에 적용할 수 있다. 예시1) # 만약 `tips`데이터의 `day`컬럼에서의 값(value)인 [Thur(목), Fri(금), Sat(토), Sun(일)] 을 인코딩 없이 머신러닝 모델에 학습데이터로 feed한다면 에러가 발생할 것 # apply를 활용하여 라벨인코딩 해 보세요. def encoding(data): if data == 'Thur': return 0 if data == 'Fr..
Folium Folium 라이브러리를 사용하여 지도 시각화를 할 수 있다. map = folium.Map( location = [37, 127], zoom_start=7 ) 마커 표시하기 for i in maps.index: # print( maps.loc[i, '위도'], maps.loc[i, '경도'] ) folium.Marker( [ maps.loc[i, '위도'], maps.loc[i, '경도']] ).add_to(map) 위와 같이 마커가 표시되는 것을 확인할 수 있다. 이제 행정구역별 코로나 확진자 사망자를 지도 시각화를 통하여 나타내어 보자. 행정구역별 단계 구분도는 국가 지리 정보원에서 다운받을 수 있다. !pip install geopandas import geopandas as gpd ..