본문 바로가기
반응형

공부/데이터19

[데이터정제] apriori 알고리즘을 실행할 수 있게 데이터 변형하기 DBMS에서 바로 데이터를 뽑으면 다음과 같은 행태일 것이다. TransactionID, ProductName 1아메리카노 2카페라떼 2아메리카노 2카푸치노 3아메리카노 3카푸치노 하지만 Apriori 알고리즘을 실행하려면 다음과 같은 데이터구조가 되어야 한다 dataset = [[아메리카노] , [카페라떼,아메리카노,카푸치노] , [아메리카노,카푸치노]] 위와 같은 형태의 데이터를 뽑기 위해서는 2가지 방법이 있다. 1) DBMS에서 위와같은 형태로 뽑는다. 2) pandas 를 이용해 데이터를 가공한다. # 1번의 경우 MySQL을 이용한다면 다음 함수를 통해 구분자뽑기가 가능하다. 다만 뽑을때 구분자를 콤마로 하면 csv로 저장하여 python에서 로드할때 에러가 발생할 수 있기 때문에 여기서는 '.. 2019. 12. 2.
[pandas] 특정 열(column) 문자 비교(like) 문자열 비교는 다음과 같이한다. sales['컬럼명'].str.contains('검색하고자 하는 문자열') item_name 컬럼에 진동벨이라는 문구가 포함되어 있으면 True를, 없으면 False를 리턴한다 (DBMS에서 like와 비슷한 기능) 필터(filter)하여 데이터를 뽑으려면 다음과 같이 하면 된다 # 문자열이 포함되어 있는것만 조회 sales[sales['컬럼명'].str.contains('검색하고자 하는 문자열')] # 문자열이 포함되지 않는 row 조회 sales[sales['컬럼명'].str.contains('검색하고자 하는 문자열') == False] 끝. 2019. 11. 30.
명목척도, 순위척도, 등간척도, 비율척도 명목척도(nominal scale) - 가장 낮은 수준의 척도로 이름뿐인 척도. 명목척도는 이름 또는 범주를 나타낼때도 쓴다. 남/녀, 학력(중졸이하, 고졸, 대졸, 대학원 졸) 등 구분하는 것에 의미를 갖는다. 숫자로 표현될 순 있지만 수량적 의미를 가지진 않는다. 순위척도(ordinal scale) - 관찰대상이 지니는 속성을 기준으로 상대적 크기를 나타내고 비교가 가능한 척도 말 그대로 순위를 나타내는 척도. 대표적으로 순위를 매기는 것에도 사용된다. 전교 석차라든가, 올림픽 금,은,동메달 등도 순위척도에 포함된다. 등간척도(interval scale) - 간격을 측정하는 척도 속성간의 차이를 간격을 균일하게 분할하여 측정하는 것이다. 대표적으로 온도나 시간에 관한 정보를 등간척도의 예로 다룬다. .. 2019. 11. 26.
[aws] 로드밸런서, IP고정, 세션별 접근(sticky session) 로드밸런싱을 할 때 sticky session이 필요할 때가 있다. sticky session 이란 세션을 사용하여 트래픽을 분산하는 것이다. 예를들어 웹사이트가 있는데 로그인을 하면서 session을 서버에서 생성했다. 이때 다른 서버에 접속하면 세션이 공유되지 않아 새로 로그인을 요청하게 된다. (그래서 무한 로그인 지옥에 빠지게 된다) 이러한 현상을 없애기 위해 sticky session을 이용한다. Sticky Session이란? 쿠키 또는 세션을 사용하여 트래픽을 분산하는 기능. nginx 의 경우 ip_hash 를 설정하면 비슷한 기능을 한다. 문제는 AWS에서 제공하는 로드밸런서에서 sticky session을 지원하지 않는 것이 있다는 점이다. AWS 에서 제공하는 로드밸런싱은 3가지다. .. 2019. 11. 23.
[pandas] 첫번째 행을 columns 으로 지정 다음과 같은 형태의 데이터를 변형한다 1. 행 열 전환 2. 첫번째 행을 columns 으로 지정 ​ 데이터 형식은 다음과 같다(csv 파일) 가맹점명,1일,2일,3일,4일,5일 서울점,98400,53200,63300,49400,13000 인천점,82700,19900,5500,10600,8500 경기도점,99100,42500,48000,83100,73700 jupyter notebook 으로 실행 import pandas as pd dt = pd.read_csv('sample.csv') dt 행 열 전환 dt1 = dt.transpose() dt1 첫번째 행을 column으로 지정 dt2 = dt1.rename(columns=dt1.iloc[0]) dt2 첫번째 행을 삭제한다 dt3 = dt2.drop(.. 2019. 11. 22.
[python-numpy] 차원 수정(reshape) - 1차원, 2차원 만들기 - 1차원 -> 2차원으로 변형 - 2차원 -> 1차원으로 변형 1차원 만들기 np.arange(10) # 결과 array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9]) 2차원 만들기 np.zeros((3,2)) # 결과 array([[0., 0.], [0., 0.], [0., 0.]]) 데이터 형태를 살펴보면 float 형태로 만들어졌음을 확인할 수 있다 np.zeros((3,2)).dtype # 결과 dtype('float64') 만약 유형을 고정하고 싶다면 다음 옵션을 준다 array2 = np.zeros((3,2), dtype='int') print(array2) print('---') print(array2.dtype) # 결과 [[0 0] [0 0] [0 .. 2019. 11. 5.
반응형