본문 바로가기
반응형

프로그래밍언어79

[Java] : Overloading이란? Overloading이란? 오버로딩은 클래스 내에서 메소드 이름이 같아도 파라미터의 개수나 데이터 형식만 다르면 여러 개를 선언할 수 있는 것을 말한다. 참고로, 생성자도 메소드의 한 종류이므로 오버로딩이 가능하다. Overloading 코딩 class CarSetting { //필드 private String color; private int speed; CarSetting(){ } CarSetting(String color) { this.color = color; } CarSetting(String color, int speed) { this.color = color; this.speed = speed; } public String getColor() { return color; } public in.. 2022. 1. 15.
[Java] : 파라미터가 있는 생성자 활용하기 파라미터가 있는 생성자를 활용하기 생성자도 다른 메소드와 같이 파라미터를 사용할 수 있다. 파라미터가 있는 생성자를 활용해서 인스턴스 생성시 초기 값을 파라미터로 넘겨 설정하는 코딩을 한다. NoteSetting myNote1 = new NoteSetting(); myNote1.color = "Blue"; myNote1.page = 0; 기존에는 이렇게 인스턴스 생성을 하고 값을 따로 추가로 담아줬다. 이렇게 하면 만약 인스턴스를 여러개를 생성해 줘야 하는 상황이 오면 일일이 지정을 해서 값을 담아줘야 하기 때문에 코드가 길어질 수 있다. 이것을 파라미터가 있는 생성자를 통해 보완해서 사용할 수 있는데 아래 코드를 확인해 보자. class PenSetting { // 필드 private String co.. 2022. 1. 15.
[Java] : private와 public에 대해서 private와 public class NoteSetting { //노트 필드 private int index = 0; //노트의 인덱스 // 노트 인덱스를 올린다. public void upIndex(int value) { if (index + value > 200){ index = 200; } else { index += value; } System.out.println("노트의 인덱스 번호는 " + getIndex() + "입니다."); } // 노트 인덱스를 줄인다. public void downIndex(int value) { if (index - value > 0){ index = 0; } else { index -= value; } System.out.println("노트의 인덱스 번호는 ".. 2022. 1. 14.
[Java] : Class와 인스턴스 생성 및 호출 Class와 인스턴스 생성 및 호출 Class란? 클래스는 설계도, 인스턴스(객체)는 설계도를 통해 만든 물건과 같다고 볼 수 있다. Class 형태 public class Name { } publci 접근 제한자를 활용한 Name 클래스이다. 클래스는 이런 형태를 가지고 있다. 실습 class NoteSetting { //노트 필드 String color; //노트 색상 int page; // 노트 장 수 // 노트 장 수 증가 void upPage(int value) { page += value; } // 노트 장 수 감소 void downPage(int value) { page -= value; } } 노트 클래스를 완성했다. 노트의 설계도를 만든 것과 같다. 이제 노트의 설계도를 통해 노트를 만들.. 2022. 1. 14.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이터 전체 파악하기 [파이썬 머신러닝 실무 테크닉 100] : 데이터 전체 파악하기 analyze_data.describe() describe()는 수치 타입 항목을 집계해 준다. alyze_data.dtypes 데이터 타입을 조회해 보면 describe()로 조회된 항목은 int64 타입인 것을 확인할 수 있다. analyze_data[['store_id', 'coupon_cd']] = analyze_data[['store_id', 'coupon_cd']].astype(str) analyze_data.dtypes 데이터 타입을 변경해 줄 수도 있다. .astype(str)을 지정해 문자열 타입으로 변경한다. analyze_data.describe() describe()는 수치 타입 항목을 집계해 준다. alyze_data.. 2022. 1. 10.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이터 로딩과 불필요한 항목 제외 [파이썬 머신러닝 실무 테크닉 100] : 데이터 로딩과 불필요한 항목 제외 전에 생성한 order_data.csv파일을 사용한다. import pandas as pd order_data = pd.read_csv('C:/Users/ojh96/output_data/order_data.csv') print(len(order_data)) order_data.head() order_data.csv파일을 읽어온다. order_data = order_data.loc[(order_data['status'] == 1) | (order_data['status'] == 2)] print(len(order_data)) order_data.columns loc를 통해 status가 1이나 2인 데이터만 추출한다. 1은 결제 .. 2022. 1. 10.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 분석 기초 테이블을 파일에 저장하자. [파이썬 머신러닝 실무 테크닉 100] : 분석 기초 테이블을 파일에 저장하자. 분석 기초 테이블을 파일에 저장하자. 가공한 데이터를 파일에 저장한다. output_dir = os.path.join(current_dir, 'output_data') os.makedirs(output_dir, exist_ok=True) os의 path.join()로 조인한다. os의 makedirs()를 통해 폴더를 만들어준다. 폴더가 존재하면 에러가 발생 exist_ok=True 설정으로 방지 가능 output_file = os.path.join(output_dir, 'order_data.csv') order_data.to_csv(output_file, index=False) os의 path.join()로 조인한다. in.. 2021. 12. 29.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 마스터가 존재하지 않는 코드에 이름을 설정하자 [파이썬 머신러닝 실무 테크닉 100] : 마스터가 존재하지 않는 코드에 이름을 설정하자 마스터가 존재하지 않는 코드에 이름을 설정하자 마스터가 제공되지 않아 값은 볼 수 있지만 무엇을 의미하는지 알 수 없다. order_data.loc[order_data['takeout_flag'] == 0, 'takeout_name'] = 'delivery' order_data.loc[order_data['takeout_flag'] == 1, 'takeout_name'] = 'takeout' order_data takeout_flag가 0이면 delivery, 1이면 takeout으로 takeout_name에 설정한다. order_data.loc[order_data['status'] == 0, 'status_name.. 2021. 12. 28.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 마스터 데이터를 조인하자 [파이썬 머신러닝 실무 테크닉 100] : 마스터 데이터를 조인하자 마스터 데이터를 조인하자 마스터 데이터를 가로로 결합한다. order_data = pd.merge(order_data, m_store, on = 'store_id', how = 'left') order_data order_data와 m_store를 조인한다. on = 으로 공통 열을 지정해 가로로 결합한다. how = ‘left’를 통해 좌측에 있는 order_data 메인으로 지정한다. order_data = pd.merge(order_data, m_area, on = 'area_cd', how = 'left') order_data 클론한 뒤 조인을 해준다. 데이터 조인을 할 떄는 순서와 키를 사전에 확인해야 한다. 도서명 : 파이썬 .. 2021. 12. 28.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 마스터가 존재하지 않는 코드에 이름을 설정하자 [파이썬 머신러닝 실무 테크닉 100] : 마스터가 존재하지 않는 코드에 이름을 설정하자 마스터가 존재하지 않는 코드에 이름을 설정하자 마스터가 없어 값을 볼 수 없는 값이 있다. order_data.loc[order_data['takeout_flag'] == 0, 'takeout_name'] = 'delivery' order_data.loc[order_data['takeout_flag'] == 1, 'takeout_name'] = 'takeout' order_data takeout_flag의 경우에 따른 이름을 설정한다. 0인 상황일 시 delivery 1인 상황일 시 takeout order_data.loc[order_data['status'] == 0, 'status_name'] = '주문 접수' .. 2021. 12. 25.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 마스터 데이터를 조인하자 [파이썬 머신러닝 실무 테크닉 100] : 마스터 데이터를 조인하자 마스터 데이터를 조인하자 데이터를 가로로 결합한다. 조인을 하면 데이터가 연결되므로 분석이 더 쉬워진다. order_data = pd.merge(order_data, m_store, on = 'store_id', how = 'left') order_data 두 데이터를 조인한다. on = 을 통해 연결할 값을 가로로 결합할 수 있다. how = 를 통해 두 데이터 중 어느 데이터를 주죽으로 할 것인지 결정한다. order_data = pd.merge(order_data, m_area, on='area_cd', how='left') order_data 도서명 : 파이썬 머신러닝 실무 테크닉 100 출판사 : Jpub (제이펍) 학습 페이지.. 2021. 12. 25.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 불필요한 데이터를 제거하자 [파이썬 머신러닝 실무 테크닉 100] : 불필요한 데이터를 제거하자 order_data = order_all.loc[order_all['store_id'] != 999] order_data 필요하지 않은 정보를 제거한다. 도서명 : 파이썬 머신러닝 실무 테크닉 100 출판사 : Jpub (제이펍) 학습 페이지 : 18, 19 해당 글의 실습 예제와 코드는 파이썬 머신러닝 실무 테크닉 100 책을 참고하고 있습니다. 출판사에 허락을 받고 올리는 글 입니다. 참고 2021.12.23 - [프로그래밍언어/Python] - [Python] : [파이썬 머신러닝 실무 테크닉 100] : 머신러닝 공부를 시작한다. 2021. 12. 24.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이터 통계량을 확인하자 [파이썬 머신러닝 실무 테크닉 100] : 데이터 통계량을 확인하자 데이터 통계량을 확인하자 하나로 모은 데이터를 확인한다. 결손값을 확인해야 한다. 결손값이 있다면 집계, 머신러닝에 큰 영향을 준다. order_all.isnull().sum() isnull() 함수를 통해 결손값의 수를 출력한다. True/Flase 형태로 값을 반환한다. True의 수를 열마다 sum() 함수로 집계한다. order_all.describe() describe() 함수를 통해 통계량을 출력합니다. 수치 데이터를 집계하기 때문에 데이터 타입이 수치면 모두 집계한다. order_all['total_amount'].describe() 확인하고 싶은 부분만 집계하여 확인한다. print(order_all['order_accep.. 2021. 12. 24.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 여러 데이터를 유니온하기 [파이썬 머신러닝 실무 테크닉 100] : 여러 데이터를 유니온(결합)하자 얻은 파일 목록을 기반으로 반복 처리를 한다. order_all = pd.DataFrame() file = tbl_order_files[0] order_data = pd.read_csv(file) print(f'{file}:{len(order_data)}') order_all = pd.concat([order_all, order_data], ignore_index=True) order_all 처리 결과 저장을 위한 pd.DataFrame()이다. print는 표시 포멧을 지정하는 방법이다. {} 안에 변수를 그대로 기입할 수 있다. order_all = pd.DataFrame() for file in tbl_order_files:.. 2021. 12. 24.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 폴더 안에 있는 파일을 확인하자 [파이썬 머신러닝 실무 테크닉 100] : 폴더 안에 있는 파일을 확인하자 폴더와 내용을 확인한다. import os current_dir = os.getcwd() current_dir os 라이브러리를 임포트 한다. as를 통해 별칭을 부여할 수도 있지만 라이브러리 명 자체가 길지 않으니 따로 붙이진 않는다. getcwd() 함수를 통해 현재 디렉터리를 얻는다. os.listdir(current_dir) os.listdir()을 통해 현재 디렉터리 아래의 모든 폴더 이름과 파일 이름을 리스트로 저장한다. tbl_order_file = os.path.join(current_dir, 'c:/python/chapter01/tbl_order_*.csv') tbl_order_file os.path.join()을.. 2021. 12. 24.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이터 결합하기 [파이썬 머신러닝 실무 테크닉 100] : 데이터를 유니온(결합)하자 세로로 결합하는 것이 유니온(union)이다. 가로로 결합하는 것은 조인(join)이다. tbl_order_4와 tbl_order_5를 유니온한다. tbl_order_5 = pd.read_csv('c:/python/chapter01/tbl_order_202105.csv') tbl_order_5 tbl_order_5를 로딩한다. order_all = pd.concat([tbl_order_4, tbl_order_5], ignore_index=True) order_all pd.concat 함수로 유니온을 수행한다. ignore_index = True는 데이터 프레임마다 가지고 있는 인덱스 번호를 0부터 다시 쓰는 것을 의미한다. 필요에 따라.. 2021. 12. 23.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 데이터를 모두 로딩하자 [파이썬 머신러닝 실무 테크닉 100] : 데이터를 모두 로딩하자 데이터를 모두 로딩하자 세 종류의 데이터를 읽어 내용을 표시한다. 데이터 베이스에서 추출한 CSV 형식의 파일이다. import pandas as pd m_store = pd.read_csv('C:/python/chapter01/m_store.csv') m_store 파이썬 라이브러리인 pandas를 로딩한다. import pandas 뒤에 as pd를 붙여 별칭을 만들어준다. 파일을 로딩하고 데이터 프레임 타입의 변수 m_store에 저장한다. 0번 인덱스부터 표시되어 번호는 데이터 프레임에 자동으로 설정된다. len(m_store) 데이터 건수를 확인할 수 있다. m_store.head() 데이터의 처음 5개를 확인할 수 있다. m_a.. 2021. 12. 23.
[Python] : [파이썬 머신러닝 실무 테크닉 100] : 머신러닝 공부를 시작한다. [파이썬 머신러닝 실무 테크닉 100] : 머신러닝 공부를 시작한다. 최근에 OKKY 커뮤니티에서 책 리뷰 이벤트에 당첨이 되었다. 당첨된 책은 [파이썬 머신러닝 실무 테크닉 100] 이라는 책인데 머신러닝을 활용해서 데이터를 분석하는 실무적인 내용이 많이 들어있는 책이다. 나는 웹 프로그래밍도 관심이 있지만 파이썬에도 관심이 있고 머신러닝은 저번 한이음 프로젝트 때 많이 경험을 못 해봤기 때문에 추가로 더 공부하고 싶은 마음이 있었다. 그런데 어쩌다 이렇게 리뷰 이벤트에 당첨되는 덕에 책을 무료로 볼 수 있게 되긴 했는데 오?, 내용이 생각보다 괜찮다. 일단 테크닉 100이란 말과 같이 거의 대부분 실무 테크닉으로 책이 서술되어 있었고 각 기술마다 설명과 배경을 제공해주고 있는 책이라 공부하기에 딱 좋.. 2021. 12. 23.
[Python] : Jupyter Notebook을 활용한 데이터 분석 서울시 CCTV 현황 분석 import pandas as pd pandas 모듈을 통해 SCV 파일과 엑셀 파일을 쉽게 읽을 수 있습니다. CCTV_Seoul = pd.read_csv('c:/anaconda3/test/CCTV_in_Seoul.csv', encoding='utf-8') CCTV_Seoul.head(4) 경로에 실습 파일을 넣어주고 읽어줍니다. 판다스 모듈에서 CSV 파일을 읽어주는 명령어는 read_csv입니다. 한글 사용을 위해서 인코딩을 UTF-8로 설정해 줬습니다. CCTV_Seoul.columns 판다스 데이터는 제일 첫 줄에 보이는 것이 해당하는 열을 대표하는 일종의 제목이라고 합니다. CCTV_Seoul.columns[0] 제목 줄의 첫 번째 값을 반환할 수 있습니다. CCTV.. 2021. 11. 24.
[Python] : Pandas, 판다스 기초(1부) Pandas, 판다스 기초 import pandas as pd import numpy as np 임포트 해 줍니다. 명령어를 입력하고 Shift + Enter를 눌러주면 실행이 됩니다. s = pd.Series([1,3,5,np.nan,6,8]) s pandas의 데이터 유형 중 기초가 되는 것이 Series입니다. 파이썬의 LIST 데이터도 사용이 가능합니다. 중간에 nan은 Not A Number입니다. dates = pd.date_range('20130101', periods=6) dates 날짜형 데이터인 date_range를 통해 기본 날짜를 지정하고 period 옵션을 통해 6일간이라고 지정해 줍니다. df = pd.DataFrame(np.random.randn(6,4), index=dates.. 2021. 11. 24.
[Python] : Jupyter notebook, 주피터 노트북 설치 Jupyter notebook(주피터 노트북) 설치 conda install -n venv ipython notebook jupyter notebook 주피터 노트북을 실행합니다. 자동으로 웹 페이지가 띄워집니다. 제 C드라이브의 python 폴더 경로 내용이 나타납니다. 주피터 노트북이 정상 작동하는 것을 확인했으니 패키지 설치를 위해 Ctrl + C를 입력해 주피터 노트북을 종료시켜 줍니다. 주요 패키지 설치 conda install -n venv numpy matplotlib pandas pydotplus h5py scikit-learn 패키지를 설치하는 도중 Proceed는 y로 응답해 줍니다. conda install -n venv scipy mkl-service libpython m2w64-t.. 2021. 11. 24.
반응형