일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 티스토리
- 파이썬 시각화
- 서평단
- Visualization
- tensorflow
- MySQL
- 월간결산
- 한빛미디어서평단
- 리눅스
- Tistory
- matplotlib
- 파이썬
- 독후감
- 블로그
- Ga
- MATLAB
- SQL
- 서평
- 통계학
- Blog
- python visualization
- 딥러닝
- Pandas
- Linux
- Python
- Google Analytics
- 시각화
- 텐서플로
- 매틀랩
- 한빛미디어
- Today
- Total
목록분류 전체보기 (596)
pbj0812의 코딩 일기
0. 목표 - LAG 함수를 이용하여 전일대비 금일의 증가량 계산 1. 실습 1) 테이블 생성 SELECT DATE, category, Price, IFNULL(LAG(Price, 1) OVER (PARTITION BY Category ORDER BY DATE), 0) AS Price2 FROM lag_test ORDER BY DATE 2) 데이터 삽입 INSERT INTO lag_test(DATE, Category, Price) VALUES('2020-10-01', 'a', 100); INSERT INTO lag_test(DATE, Category, Price) VALUES('2020-10-02', 'a', 200); INSERT INTO lag_test(DATE, Category, Price) VAL..
0. 목표 - PYTHON을 이용한 RMSE, MAPE 구현 및 데이터에 따른 결과 비교 1. 실습 1) library 호출 import matplotlib.pyplot as plt 2) 제곱근 함수 def sqrt(inp): result = inp/2 for i in range(30): result = (result + (inp / result)) / 2 return result 3) RMSE # inp1 : real # inp2 : esti def rmse(inp1, inp2): result = 0 for i in range(len(inp1)): result += (inp1[i] - inp2[i]) ** 2 result = sqrt(result / len(inp1)) return result 4) M..
0. 목표 - python을 통한 범주형 피처 처리(클래스, 이진법, 원핫인코딩) 1. 실습 1) library 호출 import pandas as pd import copy 2) 데이터 생성 data = ['A', 'B', 'AB', 'O'] 3) 클래스 ID 모듈 def class_id(inp): result = [] for i in range(len(inp)): result.append(i + 1) return result - 확인 print(class_id(data)) # 결과 [1, 2, 3, 4] 4) 이진법 표현 (1) 최대 몫 구하기 - 인풋을 넣으면 결과값으로 해당 인풋을 2로 나눌 수 있는 최대의 몫 도출 def from_ten_int2(inp): i = 0 while 2 ** i 0:..
0. 목표 - GA 에서 세션과 유저의 차이 1. 세션 1) 시간 기반 완료 - 방문자 활동이 없을 경우 30분 후(세션 설정을 통해 시간 변경 가능) - 자정(보기의 시간대 설정으로 기준 변경 가능) 2) 캠페인 변경 - 어떤 캠페인을 통해 방문한 뒤 떠났다가, 다른 캠페인을 통해 다시 방문한 경우 2. 유저 1) 새로운 기기나 브라우저로 접근할 때 새로운 유저로 잡힘. 2) 쿠키를 지우면 새로운 유저로 잡힘. 3. 참고 - Users vs. Sessions: What’s the difference? - 애널리틱스에서 웹 세션을 정의하는 방법
0. 목표 - PyQt 를 활용하여 정해진 반복횟수 만큼 주어진 작업을 반복하는 앱 제작 1. 플로우 차트 2. 실습 1) library 호출 import sys from PyQt5.QtWidgets import * 2) class 및 함수 생성 (1) initUI - 버튼 생성 - 버튼 위치 생성 - le 의 결과는 buttonClick 으로 보내버림 (2) buttonClick - 1번 라디오 버튼이 클릭된 상태면 1 출력, 2번 라디오 버튼이 클릭된 상태면 2 출력 - 이를 push 버튼(btn)과 연결 - le 에서 받은 값을 변수로 만들어 반복문의 반복 횟수로 사용 class MyApp(QWidget): def __init__(self): super().__init__() self.initUI(..
0. 목표 - PIL을 이용한 이미지 생성시간 추출 * os.path.getmtime()을 이용해도 됨 1. 실습 1) library 호출 from PIL import Image 2) 이미지 호출 imgfile = './kalimba_ori.jpeg' img = Image.open(imgfile) 3) 메타 데이터 확보 meta_data = img._getexif() 4) 메타 데이터 확인 - 36867 이 생성시각 print(meta_data) - 결과 {36864: b'0220', 37121: b'\x01\x02\x03\x00', 37377: (491, 100), 36867: '2020:10:17 00:42:57', 36868: '2020:10:17 00:42:57', 37378: (153, 100)..
0. 목표 - 아래와 같은 타임스탬프 어플 클론 코딩 1. 실습 1) 사진 준비 2) library 호출 import cv2 import numpy as np from PIL import Image import math import time import datetime 3) 이미지 불러오기 imgfile = './kalimba_ori.jpeg' image = cv2.imread(imgfile) 4) 정사각형으로 만들기 - 어플의 형태는 정사각형 그림이므로 위 사진을 정사각형으로 변형 - x 보다 y가 크면 최소 길이를 y로 잡고 반대면 x로 잡음 - 사진의 중앙에서 최소 길이의 절반만큼 빼고 더한 구간을 새로운 이미지로 설정 x, y, z = np.shape(image) if x > y: min_len ..
0. 목표 - not in 과 left join 연산 시간 비교 실험 - index 변경 / 추가 1. 실습 준비 1) 데이터 및 테이블 생성 (링크) 2) index 확인 - 없음 SHOW INDEX FROM sql_test.df_a; SHOW INDEX FROM sql_test.df_b; 3) 테이블에 index 추가 ALTER TABLE sql_test.df_a ADD INDEX idx (a); ALTER TABLE sql_test.df_b ADD INDEX idx (a); 4) index 확인 - btree 형식 SHOW INDEX FROM sql_test.df_a; SHOW INDEX FROM sql_test.df_b; 2. 실습1 1) not in 을 통한 연산 - 0.084 sec / 0.0..
0. 목표 - not in을 통한 제거와 left join 이후 where 를 통한 제거간의 연산 시간 비교 실험 1. 실습 1) 데이터 생성 - df_a.csv : 10만 - df_b.csv : 1만 import pandas as pd a = [i for i in range(100000)] df_a = pd.DataFrame({'a': a}) df_a.to_csv("./df_a.csv") b = [i for i in range(10000)] df_b = pd.DataFrame({'a': b}) df_b.to_csv("./df_b.csv") 2) 테이블 생성 - Table Data Import Wizard를 통한 테이블 생성 및 삽입 - index 칼럼을 날리고 a만 가져옴 3) 데이터 확인 SELECT..
0. 목표 - bokeh 라이브러리를 통한 산점도 그리기 1. 실습 1) 설치 pip install bokeh 2) 데이터 생성 - x좌표, y좌표, 원의 반지름 순 x = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] y = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] z = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 3) 데이터 프레임화 df = pd.DataFrame({ 'x' : x, 'y' : y, 'z' : z }) 4) figure 객체 생성 p = figure() 5) 산점도 제작 - radius를 적당히 나눠주지 않으면 원이 튀어나감 p.scatter(df['x'], df['y'], radius=df['z']/10, fill_color='black',..