본문 바로가기
반응형

프로그래밍언어/Python33

[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.
[Python] : Anaconda, 아나콘다 설치 Anaconda, 아나콘다 설치 https://www.anaconda.com/products/individual Anaconda | Individual Edition Anaconda's open-source Individual Edition is the easiest way to perform Python/R data science and machine learning on a single machine. www.anaconda.com 위 페이지에서 다운을 받아줍니다. 저는 윈도우를 사용해서 본인 사용 환경에 맞춰 받아주면 됩니다. 쭉 다음 눌러줍니다. 올 유저 선택해 줍니다. C 아래 폴더를 만들어서 경로를 설정해 줍니다. 애드 체크하고 다운로드 진행합니다. 다운로드가 진행되고 있으니 조금만 기다려 줍.. 2021. 11. 24.
[Python] : 동적 웹 페이지 크롤링 사전 준비 웹 페이지 분석하기 커피 브랜드 중 하나인 커피빈 전국 매장 정보를 크롤링 합니다. https://www.coffeebeankorea.com/store/store.asp COFFEE BEAN STORE COFFEE BEAN www.coffeebeankorea.com 커피빈 매장 찾기 페이지에 접속합니다. 지역 검색 탭에서 서울을 선택하면 매장 70개 목록이 표시되고 서울을 선택하기 전 마우스를 올리면 좌측 하단에 자바스크립트가 표시됩니다. 시/도를 선택하면 자바스크립트의 storeLocal2()함수가 호출되어 매장 목록이 표시됩니다. HTML 소스를 분석해 보면 HTML 소스에는 조회된 매장 목록이 없고 "시/도"를 선택하면 함수를 호출하여 매장 목록을 표시하는 동적 웹 페이지 구조입니다. 버.. 2021. 11. 17.
[Python] : Selenium 라이브러리 설치 및 WebDriver 다운로드하기 Selenium 라이브러리 설치 터미널에서 파이썬이 있는 곳으로 이동한 뒤 pip install selenium 명령어로 라이브러리를 설치해 줍니다. Selenium에서 제공하는 WebDriver 모듈을 이욯하면 웹 브라우저에 대한 원격 제어가 가능해 자바스크립트 함수를 실행시키고 결과 데이터를 가져올 수 있습니다. WebDriver 다운로드하기 https://www.selenium.dev/downloads/ Downloads Selenium automates browsers. That's it! www.selenium.dev 크롬에서 위 링크에 접속해서 다운로드합니다. 페이지에 들어가서 스크롤을 내려 빨간 박스를 클릭하면 아래 페이지로 이동합니다. 다운로드를 눌러 줍니다. 자신의 크롬 버전을 먼저 확인.. 2021. 11. 17.
[Python] : 정적 웹 페이지 크롤링 정적 웹 페이지 크롤링 국내 커피 브랜드 중 하나인 할리스 커피의 전국 매장 정보를 크롤링합니다. https://www.hollys.co.kr/robots.txt 웹 페이지 크롤링하기 전에 크롤링 허용 여부를 확인하기 위해 위 링크로 들어가 봅니다. User_agent: * Allow: / 또는 User-agent: * Disallow: 위 두개는 모든 접근을 허용합니다. User-agent:* Disallow: / 모든 접근을 금지합니다. User-agent:* Disallow:/user/ 특정 디렉토리만 접근을 금지합니다. 만약 robots.txt 파일이 없다면 수집에 대한 정책이 없으니 크롤링해도 된다는 의미로 받아들이면 됩니다. 매장 검색 페이지에서 HTML 소스를 분석해 보면 태그가 매장 정보 .. 2021. 11. 17.
반응형