Python: 75개의 글
들어가며 Python과MySQL을 사용해본 사람 중에 Encoding문제를 한번도 겪지 않았다면, 이 글을 읽을 필요가 없습니다. 하지만 이 두개는 쌍으로 encoding문제로 괴롭히는 주범이라고 할 수 있지요. 각각의 설정에 대해서 설명하겠습니다. MySQL MySQL에서는 테이블 생성시에 설정을 해주면 됩니다. 테이블의 기본 character 를 utf8로 설정하시면 됩니다. 또는 각 string값이 들어가는 varchar와 같은 변수옆에 character set 'utf8'을 하나씩 해주셔도 됩니다. create table `test`.`test` ( `text` varchar(50) character set 'utf8' ) default character set =utf8 Python MySQLd..
들어가며 파이썬으로 코딩을 할때 많은 에러가 발생하지만 가장 자주 마주하는 에러는 인코딩 문제일 것이다. 파이썬은 기본 인코딩이 ASCII코드이다. 우리가 파이썬 한글이 포함된 스크립트를 실행할때 발생하는 에러와 에러 해결 방법에 대해서 설명하겠다. 에러 내용 SyntaxError: Non-ASCII character '\xeb' in file app.py on line 166, but no encoding declared; see http://python.org/dev/peps/pep-0263/ f or details 해결 방법 .py의 파일 위에 나는 utf8, euc-kr의 인코딩을 기본으로 사용할 것이다. 라고 명시적으로 입력을 해주면 문제가 해결된다. #-*- coding: utf-8 -*- 또..
들어가며 파이썬에 내장되어 있는 함수 join, split을 이용해 문자열(String)을 리스트(List)로 변환하는 방법입니다. Join 함수는 리스트를 특정 구분자를 포함해 문자열로 변환해 주는 함수입니다. Split함수는 문자열을 특정 구분자를 기준으로 나누어 리스트로 변환해 주는 함수입니다. 리스트(List)를 특정 구분자를 포함해 문자열(String)으로 변환 animals = ['사자', '코끼리', '기린', '원숭이', '바나나원숭이'] print ",".join(animals) # >> 사자,코끼리,기린,원숭이,바나나원숭이 print "\n".join(animals) # >> 사자 # >> 코끼리 # >> 기린 # >> 원숭이 # >> 바나나원숭이 print "/".join(animal..
들어가기 Python에서 MySQL을 연동하는 방법입니다. 설치부터 접속, SELECT, INSERT, DELETE, 그리고 UPDATE고에 대해서 정리해 놓은 내용입니다. 설치하기 $ pip install MySQL-python 접속하기 import MySQLdb con = MySQLdb.connect('192.168.1.198', 'username', 'password', 'database') cur = con.cursor(MySQLdb.cursors.DictCursor) 여기서 MySQLdb.cursors.DictCursor를 사용하는 이유는 query를 통해 데이터를 얻을때 python의 dict로 얻기 위한 방법입니다. SELECT query = " select * from %s" & (tabl..
들어가며 지난 포스팅에서 UnicodeEncodeError에 대해서 문제점과 해결방법에 대해서 포스팅을 했다. UnicodeEncodeError:'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 이 에러는 작기도 하지만... 어쩔때는 엄청 큰 문제야 정말..그렇다면, 애초에 unicode를 신경 쓰지 않고, 기본으로 utf-8로 설정 한다면, 매번 unicode를 unicode_str.encode('utf8')을 할 필요가 없다. 자 이제 그만 귀찮은 작업 하지말고, 근본적인 문제를 해결해보자. 문제점 파이썬 내장모듈인 locale을 import한 뒤에 getdefaultlocale()함수를 통해 현재 loca..
들어가며 파이썬으로 구현을 하다보면 한번씩은 겪는 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-3: ordinal not in range(128) 파이썬은 기본적으로 unicode를 사용한다. 그렇기 때문에 한글을 사용하기 위해서는 unicode를 utf-8로 변환해서만 사용할 수 있다. 변경하는 방법은 아주 간단하다. unicode를 utf8로 encoding을 해주면 문제를 해결할 수 있다. 문제점 예를 들어서 웹페이지에서 한글 텍스트를 입력받은 값을 website.text라고 가정하자. 아래 내용은 website.text를 print문으로 출력했을때 UnicodeEncodeError가 발생한다. python 내장함수..
| 가설 검정( Hypothesis Testing ) 가설 검정은 증명된 바 없는 주장이나 가설을 표본 통계량에 입각하여 진위 여부를 판단하는 통계적 추론 방식입니다. 통계적 근거에 기반한 가설 검정은 우리가 세운 어떤 가설에 대해 완벽하게 증명하지 못합니다. 하지만 그 가설이 어느정도 신뢰할 수 있는 지에 대한 어떤 측정값을 우리에게 제공해 줄 수 있습니다. 가설 검정은 귀무 가설(null hypothesis)과 대립 가설(alternative hypothesis)을 설정하여 현재 세운 가설이 맞는지 아닌지를 가늠합니다. 귀무가설은 어떠한 차이가 없거나 의미 있는 차이가 없는 경우의 가설, 관습적이고 보수적인 주장이며 기각(reject)이 목표인 가설을 말합니다. null hypothesis란 용어로 ..
| 판다스 분포 : 이항분포, 정규분포, 카이제곱분포 (Pandas Distribution : binomial, normal, uniform, chisquare) 판다스에서는 여러 확률분포들을 시뮬레이션 할 수 있도록 유용한 기능을 제공하고 있습니다. 다음은 그와 관련된 예제들입니다. import pandas as pd import numpy as np # 0.5의 확률로 1번 시도했을 경우 # 성공한 횟수를 나타냄 (binomial distribution) binom = np.random.binomial(1, 0.5) print(binom) # 0 # 0.5의 확률로 1000번 시도해서 성공한 비율 binom_possible = np.random.binomial(1000, 0.5)/1000 print(..
| 판다스(Pandas) Timestamp, Period 판다스(Pandas)에서는 Timestamp, Period를 이용하여 시계열 데이터를 쉽게 다룰 수 있는 기능을 제공합니다. 다음 예제는 그 기능들을 이용하여 시계열 데이터를 만들고 처리하는 파이썬 코드들입니다. import pandas as pd import numpy as np time1 = pd.Timestamp('9/1/2016 10:05AM') print(time1) ''' 2016-09-01 10:05:00 ''' period = pd.Period('3/5/2016') print(period) ''' 2016-03-05 ''' # timestamp 인덱스 t1 = pd.Series(list('abc'), [pd.Timestamp('201..
| 판다스 피벗 테이블(Pandas Pivot Table) 판다스에서는 DataFrame의 피벗 테이블(Pivot Table)을 만들 수 있는 기능을 제공한다. 아래 코드는 판다스를 통해 피벗 테이블을 어떻게 만들 수 있는지를 알아 볼 수 있는 예제들이다. import pandas as pd import numpy as np df = pd.read_csv('cars.csv') print(df.head()) ''' YEAR Make Model ... RATING (km) TIME (h) 0 2012 MITSUBISHI i-MiEV ... NaN 100 7 1 2012 NISSAN LEAF ... NaN 117 7 2 2013 FORD FOCUS ELECTRIC ... NaN 122 4 3 2013 MITS..