밑바닥부터 시작하는 데이터과학 ch1 코드를 연습하다가,


요구사항: 근속연수를 입력하면 구간으로 나누어서


구간(key)에 속하는 평균 연봉을 뽑는 함수를 만드시오


1. 경력을 몇개의 구간으로 나누는 함수


def tenure_bucket(tenure):

        if tenure < 2:

            print("2년 미만 근무시 평균 연봉")

        

        elif 2<=tenure < 5:

            print("2년이상 5년 미만 근무시 평균 연봉")

        

        elif 5<=tenure:

            print("5년이상 근무시 평균연봉")


이 다음에, 근속연수를 위의 함수처럼 나눌 수 있게 하는 로직을 못짰다. 하지만 이렇게 간단하다!


2. 각 연봉을 해당 구간에 대응시키는 로직


(1) 새로운 dict을 만든다 defaultdict

(key:해당구간 values:연봉)






collection 모듈 이해하기





여태까지 시퀀스에 대한 개념을 공부했고,

시퀀스는 정적시퀀스(튜플,사전,리스트..) 와 동적시퀀스(동적으로 생성되는 데이터)로 나뉜다는 것을 알았다.


1. 동적 생성 시퀀스


예를 들어 프로그램으로싀 입력 스트림이 이미 크기와 내용이 결정된 값이 아니라 시간이 지나면서 동적으로 지속적으로 입력되는 줄이나 문자, 센서등의 숫자등과 같은 값일 수도 있다


대표적인 예로는 이동평균을 계산하는 함수를 만들 때 입력되는 데이터는 최근 4개월의 데이터일것인데 ,이때 이 데이터는 스트림일 것이고 스트림을 생성하는 발생자 함수를 만들어야할것이다.. (자세한 내용은 스트림 개념 설명후에 할게요.)


스트림이라는 용어는 동적으로 생성된 시퀀스를 대표하는 의미이다.

동적 시퀀스를 stream으로 (흘러가는 의미의 단어) 생각하면 된다.


2. 발생자 함수 Generator 


동적시퀀스를 생성하는 구조이다.

동적시퀀스를 생성한다는 것은 스트림을 생성한다는 것일거다.


발생자 함수를 정의하는 방법이다.


yield 표현식


일반 함수와의 차이는, 함수는 return (반환)값이 있찌만, 이 발생자 함수는 yield 한다. (산출)->시퀀스를 produce


즉 발생자함수(제너레이터)는 반복자(이터레이터)를 반환한다.




3. 발생자 함수 만들기, 스트림을 이용한 프로그래밍(p129)


yield의 동작 방식을 이해해야한다.




4. 왜, 언제 사용해야 메모리 효율적인가?


대용량 데이터를 분산처리 할때.

쉽게 말해 map, filter, reduce같은 연산을 사용해 각자의 파일시스템에 있는 데이터를 집계하거나 검색한다. 그리고 중앙 컴퓨터로 상대적으로 적은 양의 데이터를 보내서 최종 결과를 집계하는 방식.


 5. 파일 한줄씩 읽고 내용 전달하는 제너레이터 함수 만들기


https://dojang.io/mod/page/view.php?id=1121



사전을 생성하기 전에 알아야할 메소드

String split() method


EX 


str = 'yeseul is studying python'

print(str.split( )) 


Split method return List , So result is..


['yeseul','is','studying','python']






9월,10월


웹DB 프로그래밍 , 파이썬 기본문법복습


1. 파이썬으로 배우는 수학적 프로그래밍



11월,12월



2. 모두의 파이썬 알고리즘



전공 OR 수업에서 파이썬 가상환경 구축한 걸 정리해본당


jy<환경 설정>

Python3.X 설치위치

C:\Users\yeseul\Miniconda3


C:\Users\yeseul>conda


생성

> conda create -n or_honors python=3.5


가상환경구동!!

>activate or_honors

>jupyter notebook


c드라이브 이동

>

workspace 폴더 생성

mkdir workspace

workspace 폴더 이동


mkdir mkdir or_honors


or_honors로 이동



<가상환경만들기>

>>conda create -n or_honors(가상환경이름) python=3.5


<가상환경 call>

>>activate or_honors

>>cd c:\users\yeseul\workspace\or_honors

>>jupyter notebook


<package install>

(or_honors) 가상환경위치

>>conda install 패키지명


-> ERROR

>>pip install 패키지


<Matplotlib 패키지>

데이터 분석 도구

matplotlib.org 


plt_test.py 실행

>>파일 저장 위치

dir /w .py 명확인




<숙제 다운로드 프로그램 설치>


설치 위치를 어디로????


pip install py2exe
pip install git+https://github.com/TeamLab/gachon-autograder-client.git


2. 숙제를 다시 다운로드 받으면 다 날라갈 수 있으니 다 복사 해두고 실시! 













추가 적으로 복습해야할 개념. wikidoc 파이썬에 잘 나와있다. 교수님이 퀴즈 본다고 하신 것 정리..ㅋㅋ

<객체 지향 프로그래밍>

<모듈과 클래스개요>


<패키지와 모듈의 차이점>


모듈: 부품

ex) built-in module-random


패키지: 모듈을 모아둔 단위

하나의 프로그램


<모듈만들기>

cd c:\users\yeseul\workspace\or_honors\test


<Namespace>

모듈을 호출할 때 범위

정하는 법

module = (func,class)


from 모듈 이름 import 모듈 내 특정 함수


from 모듈이름 import *

전체 함수 call


<Built in modules>




현대자동차 빅데이터실Strategy 대충이렇다... 이번수업하면서 랩을 하면 이길이 내길인지 아닌지가 나오겠지?ㅎㅎ


학교 시간표에 플러스

방학별 프로젝트 목표 수강강의 추가  


3/1 

1.여름방학데이터학교

목표 OR A+목표

2. Kaggle 경연 대비

기초 필요 통계+선형대수

3. C프로그래밍 

4. 자료구조,알고리즘


과목별 들을 수업 관련     개인적으로 학습+프로젝트준비 


인턴 대비 프로젝트

에러 사항


Can't update: no tracked branch

No tracked branch configured for branch master

in Git repository C:\Users\yeseul\mystuff\projects

To make your branch track a remote branch call, for example,






/QuoteEye01



<To Do>

새로 생성한  QuoteEye01 레퍼지토리에

quote.py를 commit 후 push 하기 



* 확인할 것: 기존의 quote.py(commit 후 push할 파이썬 파일)의 레퍼지토리/경로 



* 경고창 같은게 뜨면 

무조건 Merge 버튼 누르고 보쟈 








파이썬 mysql 참고 예제 


특정 서버에 접속한 데베 연동



Try to run this command from the system terminal. Make sure that you use the correct version of 'pip' installed for your Python interpreter located at 'C:\Users\yeseul\AppData\Local\Programs\Python\Python35\python.exe'.



파이썬 다운로드 된 모듈 확인


파이썬 DB 연동 방법 


파이썬 라이브러리 import 안될때 pip 업그레이드 확인




'Python_ > Beginner' 카테고리의 다른 글

파이썬_Jupyter notebook virtual 환경 설정  (0) 2017.03.15
Pycharm - Github 연동  (0) 2017.02.27
파이썬 MySql 연동  (0) 2017.01.21
(디버깅) 파이썬 모듈 디렉토리  (0) 2017.01.07
컴파일러 관련 오류  (0) 2016.12.06





디렉토리를 변경하는 방법




이제 이 디렉토리안의 csv파일을 검색하게 된다!


https://www.analyticsvidhya.com/blog/2015/10/beginner-guide-web-scraping-beautiful-soup-python


파이썬 웹크롤링 가이드 feat. jupyternotebook(0107)

from __future__ import print_function
import os.path
from collections import defaultdict
import string
import requests
from bs4 import BeautifulSoup
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt


1. defaultdict 자료저장

출처: https://docs.python.org/2/library/collections.html

8.3.3.1. defaultdict Examples

s = [('yellow', 1), ('blue', 2), ('yellow', 3), ('blue', 4), ('red', 1)]
>>> d = defaultdict(list)
>>> for k, v in s:
...     d[k].append(v)
...
>>> d.items()
[('blue', [2, 4]), ('red', [1]), ('yellow', [1, 3])]


2. python request 모듈

result = requests.get(url)
c = result.content
soup = BeautifulSoup(c)


request.content 와 request.text의 차이점


r.text is the content of the response in unicode, and r.content is the content of the response in bytes. 




3. Data를 가져올 HTML 구조를 파악 


clean up function

def convert_num(val):
    """
    Convert the string number value to a float
     - Remove all extra whitespace
     - Remove commas
     - If wrapped in (), then it is negative number
    """
    val = string.strip(val).replace(",","").replace("(","-").replace(")","")
    return float(val)


4. Parse the HTML





<파이썬 웹 크롤러 연습할 떄 참고한 사이트>

http://creativeworks.tistory.com/entry/PYTHON-3-Tutorials-24-%EC%9B%B9-%ED%81%AC%EB%A1%A4%EB%9F%AClike-Google-%EB%A7%8C%EB%93%A4%EA%B8%B0-1-How-to-build-a-web-crawler


<파이썬 프로젝트 구성하기>

http://python-guide-kr.readthedocs.io/ko/latest/writing/structure.html


<파이썬 스터디 URL>

http://blog.naver.com/dudwo567890/220914435973

+ Recent posts