데이터 분석 41

[Python] 정규표현식 기초

정규 표현식이란? *Regular expression : 정규 표현식 : 정해진 규칙을 표현하는 식 python re , python regex 모듈 시작하기 import re 일단 기본 표현이 거지같아직관적이지 않아야 정규표현식 같다. \d : digit : 숫자 : 0~9 에 해당 : [0-9] 와 같음 \D : not digit : 숫자 빼고 : [^0-9] \w : word charactor : 글자 문자 : a ~z , A ~ Z, 0~9 \W : not word charactor \s : white space : 스페이스 . : (점) : 아무거나 전부 괄호 [abd] 반복 ca*t 줄 글로 읽기 docs.python.org/3/howto/regex.html Regular Expression ..

[selenium 오류] stale element reference: element is not attached to the page document

상황 : selenium으로 select tag option 선택 바꾸기 1. select 태그를 찾고, 2. 자식 요소들(option)의 value 값을 list로 만들어 확인 sigungu_list_raw = driver.find_element_by_id('SIGUNGU_NM0') opt_list = sigungu_list_raw.find_elements_by_tag_name('option') gu_names = [opt.get_attribute('value') for opt in opt_list] len(gu_names) 3. `send_keys()`로 select 태그에 보낸다 sigungu_list_raw.send_keys(gu_names[10]) 오류 메세지 Message: stale elem..

[Python] zip() 함수, 사용 예제

zip() 함수는 iterable(이터러블 : 반복 가능한 것들)을 여러개 받고, 원소 1개씩을 뽑아 tuple(튜플)로 합친다. > 주로 여러 개의 리스트를 동시에 for 문에 넣어 새로운 리스트를 만들고 싶을 때 사용한다. syntax(문법) zip(*iterables) * : 여러개의 인수(argument)를 받을 때 앞에 붙임, asterisk(애스터리스크)라고 부름 예제 1 두 개 리스트 이름(last_name)과 성(first_name)을 합치고 출력해 본다 last_names = ["Jack","Matt","Obama"] first_names = ["Cock", "Bal", "Care"] result = zip(last_names,first_names) print (result) zip 오브..

[쉽게 쓴 SQL] UPDATE JOIN 문

JOIN과 UPDATE를 같이 하자! 사용법 : 다른 테이블의 내용을 참조해서 UPDATE 한다 UPDATE target_table a--update할 테이블 a SET a.COLUMN_1 = 표현식 --a의 컬럼을 어떻게 바꾼다 FROM ref_table b--참조 테이블 b 지정 WHERE a.column_1 = b.column_1-- 조인 조건 ; 실습 세팅 product와 product_segment 테이블을 만든다. 모든 product는 1개의 product_segment를 가지도록 만든다. DROP TABLE product; CREATE TABLE product_segment ( Id serial PRIMARY KEY, segment varchar NOT NULL, discount NUMERI..

[쉽게 쓴 SQL] UPDATE 문

테이블에 존재하는 데이터를 수정합니다. 동시성에 유의해야 합니다(?). 수정 시 대상 행을 LOCK을 잡는다. 영화관 표 예매 시스템처럼. table_name이라는 이름의 테이블의 column_1에는 value1을, column_2에는 value2를 넣는다 UPDATE table_name SET column_1 = value1, column_2 = value2 WHERE 조건 ; 이전 글에서 쓰던 테이블 사용하여, 'last_update' 컬럼을 추가하고 디폴트DEFAULT 값을 현재 시간(current_date)으로 바꾼다 ALTER TABLE link ADD COLUMN last_update date; ALTER TABLE link ALTER COLUMN last_update SET DEFAULT c..

[쉽게 쓴 SQL] INSERT 구문

테이블에 데이터를 삽입할 때 사용 table_name이라는 테이블에 value들을 순서대로 넣겠다. INSERT INTO table_name VALUES (value1,value2,value3,...) ; 자동으로 내용 들어감 (잘 안쓰임) table_name이라는 테이블의 column1,column2에 value1,2를 각각 넣겠다. INSERT INTO table_name (column1,column2) VALUES (value1,value2) ; 직접 넣는다. 예제) link라는 테이블을 만들어 데이터를 넣는다. CREATE TABLE link ( id serial PRIMARY KEY , url varchar(255) NOT NULL , name varchar(255) NOT NULL , desc..

[쉽게 쓴 SQL] ANY 그리고 IN, ALL

(연산자) 서브 쿼리의 값의 집합과 비교할 수 있다. WHERE ANY 영화 분류별, 가장 긴 상영시간은? SELECT DISTINCT max(f2.length) FROM film f2 , film_category fc WHERE f2.film_id = fc.film_id GROUP BY fc.category_id ORDER BY max ; 결과로 [178,181,183,184,185]의 집합이 나온다. (중복 제거 시) 영화 분류별로 상영시간이 가장 긴 영화보다 상영시간이 같거나 긴 영화는? - ANY ANY는 집합 중, 하나라도 만족하면 OK SELECT f.title , f.length FROM film f WHERE f.length >= ANY ( SELECT max(length) FROM fil..

anaconda3 전체 경로에서 사용하기 (command not found: jupyter)

처음으로 anaconda를 깔고 검정 화면(터미널)에서 "jupyter notebook"을 치고 엔터 탁! 했는데 실행이 안 되는 경우가 있다. 선생님이 하라는 대로 막 했는데 실행 오류가 난다. 나처럼 비전공자에 코무한 사람이면 아주 멘붕이다. 딮빡.. 아무것도 못한다. 다 던지고 해결 방법을 찾아봤는데, 역시나 설명이 친절한게 없다. 딮빡.. 실행이 안되는 이유 보통 뜨는 오류가 "command not found: jupyter" : 이 말은 jupyter라는 명령어를 못 찼겠다는 거다. 저 명령어의 뜻이 jupyter(주어)가 notebook 을 동작한다(동사) 는 건데, jupyter가 없으니 될리가. 그래서 해야 하는 게 "환경변수 PATH 설정"이다. 환경변수는 OS(맥이든 윈도우든)가 뭔가 ..