본문 바로가기

Python

(22)
python pandas resample [ resample() 메소드의 시간 단위 구간 설정 ] 살짝 참고만 하면 좋다. - 5분 단위 구간 : resample('5T') - 10분 단위 구간 : resample('10T') - 20분 단위 구간 : resample('20T') - 1시간 단위 구간 : resample('1H') - 1일 단위 구간 : resample('1D') - 1주일 단위 구각 : resample('1W') - 1달 단위 구간 : resample('1M') - 1년 단위 구간 : resample('1Y') # resample 'Y' 는 년도다. 년도로 리샘플한 후, 각 년도별 몇개의 범죄 데이터를 가지고 있는지 확인한다. in : df_year.chicago_df.resample('YS').size YS ( year st..
Machine Learning : 문자열 데이터를 숫자로 바꿔주는 CountVectorizer와 analyzer파라미터 문자열 데이터를 숫자로 바꿔주는 CountVectorizer와 analyzer파라미터 analyzer 파라미터는 학습단위를 결정하는 파라미터입니다. word, char 2가지 옵션 정도를 고려해볼 수 있습니다. analyzer = 'word'라고 설정시, 학습의 단위를 단어로 설정합니다. (ex - home, go, my ...) analyzer = 'char'라고 설정시, 학습의 단위를 글자로 설정합니다.(ex - a, b, c, d ...) 나이브 베이즈를 이용한 스팸 분류 PROBLEM STATEMENT 5,574개의 이메일 메시지가 있으며, 스팸인지 아닌지의 정보를 가지고 있다. 컬럼 : text, spam spam 컬럼의 값이 1이면 스팸이고, 0이면 스팸이 아닙니다. 스팸인지 아닌지 분류하는 ..
Machine Learning : Hierarchical Clusting의 Dendrogram 설명 Cust_Spend_Data.csv 파일을 통해서 고객의 의류소비, 음료소비, 음식소비 대이터를 통해서 비슷한 고객으로 그루핑 하자 import numpy as np import pandas as pd import matplotlib.pyplot as plt df = pd.read_csv('data/Cust_Spend_Data.csv') X = df.iloc[:, 2:] import scipy.cluster.hierarchy as sch sch.dendrogram( sch.linkage(X, method='ward') ) plt.title('Dendrogram') plt.xlabel('Customers') plt.ylabel('Eculidaen Distances') plt.show() out in X.s..
Machine Learning : K-means 의 WCSS와 Elbow Method 설명 K-Means Clustering Unsupervised Learning 이다. k 개의 그룹을 만든다. 즉, 비슷한 특징을 갖는 것들끼리 묶는것. - 다음을 두개, 세개, 네개 그룹 등등 원하는 그룹으로 만들 수 있다. 알고리즘 Random Initialization Trap 다음과 같은 데이터 분포가 있다고 치자. 우리가 원하는 클러스터링 그룹화는, 아래와 같은 것이다. 원치 않는 그룹화가 되어버렸다! Choosing the right number of clusters 몇개로 분류할지는 어떻게 결정하는가? K의 갯수를 정하는 방법 within-cluster sums of squares 센터가 원소들과의 거리가 멀수록 값이 커진다. 따라서 최소값에 가까워지는 갯수를 뽑되, 갯수가 너무 많아지면 차별성이..
Machine Learning : WordCloud 라이브러리 사용법과 Stopwords 적용하는 방법 실습 1. 패키지 설치 프로젝트를 위해, 아나콘다 프롬프트를 실행하고, 다음을 인스톨 한다. conda install -c conda-forge wordcloud IMPORTING DATA 아래코드를 실행시킨다. # import libraries import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sb %matplotlib inline 실습 2. pandas로 파일 읽기 - 탭으로 되어 있는 tsv 파일 읽기 df = pd.read_csv('data/amazon_alexa.tsv' , sep='\t') 실습 3. verified_reviews 컬럼의 내용이 어떤지 확인해 보세요 df.loc[:, '..
Machine Learning : Hierarchical Clustering Amazon Echo Reviews Analysis 데이터셋은 아마존의 알렉사 제품에 대한, 3000개의 리뷰로 되어있습니다. 컬럼은 rating, date, variation(제품모델), verified_reviews, feedback Dataset: www.kaggle.com/sid321axn/amazon-alexa-reviews Hierarchical Clustering Library imfort 실행하기 import numpy as np import matplotlib.pyplot as plt import pandas as pd dataset 읽어오기 df = pd.read_csv('data/Mall_Customers.csv') X = df.iloc[:, 3:] X.head() Dendrogram..
Machine Learning and Data Preprocessing(Supervised , Unsupervised/Regression(회귀) 과 Classification(분류)/ 카테고리컬 데이터를 처리하는 방법 - Label encoding / One Hot encoding/Feature Scailng : StandardScaler, MinMaxScaler Machine Learning and Data Preprocessing 머신러닝으로 할 수 있는 것 편지봉투에 손으로 쓴 우편번호 숫자 자동 판별 의료 영상 이미지에 기반한, 종양 판단 의심되는 신용카드 거래 감지 블로그 글의 주제 분류 고객들을 취향이 비슷한 그룹으로 묶기 머신러닝 : Supervised , Unsupervised 문제와 데이터 이해하기 가지고 이는 데이터가 내가 원하는 문제의 답을 가지고 있는가? 내 문제를 가장 잘 해결할 수 있는 머신러닝 방법은 무엇인가 문제를 풀기에 충분한 데이터를 모았는가? 머신러닝의 성과를 어떻게 측정할 것인가 용어 및 설명 레퍼런스 : https://www.youtube.com/watch?v=KDrys0OnVho Supervised Learning 우리는 I..
Pandas : 대중교통 / 범죄현황 / seaborn / pairplot subwayfee.csv 파일을 통한 지하철 유무임별 이용현황 데이터 분석 자료출처 : t-money.co.kr 에서 자료를 제공함. df = pd.read_csv('data/subwayfee.csv', encoding='cp949') df.head(3) df['역ID'].nunique() df['지하철역'].nunique() df['호선명'].nunique() df['호선명'].unique() #####out array(['1호선', '2호선', '3호선', '4호선', '경부선', '경인선', '경원선', '안산선', '과천선', '분당선', '일산선', '중앙선', '장항선', '경의선', '경춘선', '수인선', '경강선', '5호선', '6호선', '7호선', '8호선', '9호선', '공항철도..
Pandas : pivot_table / Dates and Times/Frequencies and Offsets pandas의 pivot_table 익히기 1. 일단 df.to_csv('new_crime_in_Seoul.csv') 을 불러온다. import pandas as pd import numpy as np 2. 피봇팅 한다. 즉 컬럼의 값을 열로 만드는것. df = pd.read_excel('data/sales-funnel.xlsx') # 인덱스를 중복된값으로 설정한것은 잘못 만든것이다. # 중복데이터가 있으면 하나로 합쳐서 인덱스로 뽑되, 수치데이터만을 뽑아 평균데이터로 하나로 합치는것이다. pd.pivot_table(df,index=['Name'] , aggfunc = np.max) pd.pivot_table(df,index=['Manager','Rep'],aggfunc= np.sum) pd.pivot_..
pandas : Google Map API(Geocoding API 설정방법) /csv file 불러오기 / encoding import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sb %matplotlib inline import platform from matplotlib import font_manager, rc plt.rcParams['axes.unicode_minus'] = False if platform.system() == 'Darwin': rc('font', family='AppleGothic') elif platform.system() == 'Windows': path = "c:/Windows/Fonts/malgun.ttf" font_name = font_manager.FontProperties(fname=p..
pandas : Tindy Data / Bar Charts / Pie Charts /Histogram/Figures, Axes and Subplots/Heat Maps /seaborn/pairplot / cprr함수, 차트로 표현하기 Tidy Data each variable is a column each observation is a row each type of observational unit is a table 가장기본적인 Plot import matplotlib.pyplot as plt import numpy as np x = np.arange(0, 9+1) x array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) y = x y array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) plt.plot(x , y) plt.savefig('test1.jpg') plt.show() 결과 제너레이션 아이디별로, 각 각 몇개씩 있는지 차트로 표시 df.head(3) sb.countplot(data= df, x..
pandas : 기온데이터분석 / 히스토그램 기온데이터 분석 * 1907년부터 2018년3월까지의 서울 기온 데이터를 CSV로 다운로드 한다. - 다운로드 파일을 미리 제공해서 폴더에 넣어두었습니다. seoul.csv 파일을 열어 보세요. encoding='cp949' import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sb %matplotlib inline import platform from matplotlib import font_manager, rc plt.rcParams['axes.unicode_minus'] = False if platform.system() == 'Darwin': rc('font', family='AppleGoth..
pandas : Series/Label&Index/NaN Pandas 의 장점 Allows the use of labels for rows and columns 기본적인 통계데이터 제공 NaN values 를 알아서 처리함. 숫자 문자열을 알아서 로드함. 데이터셋들을 merge 할 수 있음. It integrates with NumPy and Matplotlib Pandas Series 데이터 생성하기 * 필수암기(pandas의 1차원 데이터를 Series(시리즈)라고 부른다 ) Accessing and Deleting Elements in Pandas Series - 레이블과 인덱스 Arithmetic Operations on Pandas Series 실습 import pandas as pd 1. 다음과 같은 레이블과 값을 가지는 Pandas Series 를..
NUMPY (arange/reshape/Slicing...) NUMPY NumPy는 다차원 배열을 처리할 수 있는 선형대수학(Linear Algebra) 라이브러리입니다. 다음이 실행이 안되면 아나콘다프롬프트에서 conda install numpy 를 실행하여 설치합니다. * 넘파이의 2차원 배열을 만드는 방법 1 * [[1,2] , [3,4]] 이런식으로 2개가 들어가야한다. * 넘파이의 2차원 배열을 만드는 방법 2 Save and Load data ( 파일 저장하기, 불러오기 ) * 모든 데이터를 1로 하여, 1을 8개짜리 넘파이 배열을 만드세요. BUILT-IN METHODS AND FUNCTIONS 특정 값으로, 행렬 만들기 정수의 배열을 얻고자 할때 np.arange(start,stop,step) 정수 말고 실수를 얻고자 할때 ★★★★★★ 중요하다 ★★..
Random/Datetime/Import 다음 토픽을 다룹니다. random datetime Random number : 난수(무작위) 생성하기 * 0.0 ~ 1.0 사이 난수 생성 라이브러리는 함수들의 집합이다. (여러 함수들을 모아놓은 것.) * int 형의 난수를 얻는다. 100과 500사이의 정수를 아무거나 불러온다 * float 형의 난수를 얻는다. 똑같은 난수의 패턴이 나오도록 하는 방법. 테스트를 수행했을 경우, 다른사람도 같은 프로그램을 돌려서 같은값이 나오는지 확인하는 경우 딥러닝에서 weight 초기값 할당하는 데 많이 사용됨 - 실행할 때마다 무작위로 데이터가 나오는데 , - 예를들어 2, 5, 4 ,2, 1, 6, 3 이런식으로 무작위로 나오되 - 무작위로 나온 수의 순서와 관련된 패턴을 똑같이 하고 싶을 때 - 씨드(se..
Loop / Functions- Lambda Expressions / def (함수만들기) Loop * 지금까지 사용한것은 함수를 호출(call)한것. 어딘가에는 함수의 실체 (정의, definition)가 있다. LIST COMPREHENSION 원본 리스트를 가지고, 다른 리스트를 만드는 방법 for 나 while 없이, loop 를 실행시키는 아름다운 방법 문법을 잘 보도록 하자. Qeaust 1. - score list 에서 점수가 짝수인 것만 리스트로 만들어보자. - 리스트 컴프리핸션으로, 스코어가 짝수인것들은, 제곱한 값으로 리스트를 만들어보자. [ data ** 2 for data in score_list if data % 2 == 0 ] 출력 결과 [7744, 5776, 3136, 4624] FUNCTIONS 함수란, 재사용 되는 코드 블럭 입니다. Data or argument..
반복문 Loop (for, range)/ Break a loop/Continue statement Range/While /LoopsNested /loops/List Comprehension 반복문 Loop For Loops Break a loop Continue statement Range While Loops Nested loops List Comprehension 실행 순서에 대한 문법 - 데이터 스트럭쳐에 들어있는 데이터를 하나씩 가져와서 - 무엇인가 작업을 하고 싶을 때 사용하는 키워드 : for - 하는 동안 for 뒤에 in 안에 들어있는 데이터 스트럭쳐에서 - 데이터를 하나씩 꺼낸다. 꺼낸 데이터는 for 오른쪽의 변수에 저장된다. FOR LOOPS 영어가 설명이 정확합니다. For loops are used for iterating over a sequence (a list, a tuple, a dictionary, a set, or a string). 한번에 하나의 항목만 ..
<>비교문과 if조건문 and ,or 논리 프로그램에 Comment (코멘트) 달기 * 주석이라고도 합니다. * 파이썬에서는 문장 맨 앞에 # 을 붙여줍니다. * 컴퓨터가 그 문장은 실행하지 않습니다. 단지 사람을 위한 문장입니다. Q. 한 줄이 너무 길어서, 눈에 다 안들어 옵니다. 밑으로 내릴수는 없을까요?? COMPARISON OPERATORS (비교연산자) * 공백이 있으면 안된다. 문제 ret = number // 4 또는, 거나 * and => 그리고, ~하며 문제 1. 비밀번호 길이가 4보다 작거나 12보다 크면 , 잘못입력했다고 화면에 출력하라. len(password) 12 False 문제 2. ( 여러개의 조합 ) 비밀번호 길이가 4보다 크거나 number를 2로 나눈 나머지가 1과 같거나 cnt를 제곱한 값이 10보다 크면, ..
TUPLES AND SETS / Add / Len TUPLES Immutable Python objects. 튜플은 시퀀스, 즉 순서가 있습니다. 튜플은 괄호 ( ) 를 사용합니다. * 리스트랑 똑같은데 데이터 추가 삭제 변경이 안된다. * 여러 데이터를 만들 수 있다. * 데이터 억세스가능하다. * 튜플은 소괄호를 안써도 익혀진다. SETS 셋에 들어있는 데이터는 순서가 없습니다. 셋에는 동일한 값이 저장되지 않습니다. 우리가 배웠던 집합과 같습니다. 셋은 중괄호 { } 로 정의합니다. * set = 집합 * 중복된 데이터는 알아서 하나로 처리된다. add 함수 이용하여 값 구하기 LEN 과 SET 함수 이용하여 값 구하기 SET 함수 이용하여 값 구하기 * 합집합 * 교집합 * 차집합
DICTIONARIES AND BOOLEANS / Key & Value / True & False / Data / Data Access DICTIONARIES AND BOOLEANS / Key & Value / True & False / Data / Data Access DICTIONARIES my_dict = {'key1':'value1', 'key2':'value2', 'key3':'value3'} 딕쳐너리는 키 밸류의 쌍으로 되어 있다. 키는, 딕셔너리 안에 유일한 값으로 되어 있다. 따라서 키가 같은 값을 가질 수 없다. 그러나 밸류는 같은 값이 여러개 있어도 상관없다. 리스트는 인덱스의 오프셋으로 접근하지만, 딕셔너리는 키로 접근한다. #list는 콤마로 구분한다. #dictionary는 :로 구분한다. # 왼쪽은 키, 오른쪽은 벨류라고 한다. #브랜드는 애플, 모델은 아이폰, 년도는 2018년도이다. # 용어가 중요!! # 한..