무냐의 개발일지
[SQL로 시작하는 데이터분석] #1 PostGreSQL 로 CSV파일 IMPORT 해오기! 본문
1. sql 활용한 분석
- structured data : 열과 행에 저장되는 데이터
- unstructured data : 미리 지정된 구조, 데이터 모델, 데이터 타입이 없음 (문서, 이메일, 웹 페이지 등)
- quantitative data : 특정 수치로 정량화한 데이터 (가격, 양, 방문기간, 숫자 타입 정보 등)
- qualitative data : 텍스트 형태로 적힌 느낌, 의견 등 수치로 측정할 수 없는 데이터 (설문조사, 소셜미디어 내용 등) - 텍스트 분석, 감성 분석, 자연어 처리 기술을 활용 시 수준 높은 분석 가능
- first-party data : 기관이 직접 수집한 데이터 (로그, 고객 정보 등)
- second-party data : 서비스 제공 업체에서 수집하는 데이터 (이메일, 소프트웨어 등)
- third-party data : 업체에 돈 지불/ 정부에서 무료로 공개한 데이터 등
2. 데이터 준비
- 프로파일링 (데이터가 어떻게 저장되어 있는지, 열 이름, 관계 파악) - EDA(Exploratory data analysis와 연관있음- 데이터 분포를 파악하는 데 box plot, histogram 등 유용하다)
- 출현빈도 확인이 가장 좋다
- 프로파일링 하려는 필드 : GROUP BY 로 묶는다
- COUNT() , COUNT DISTINCT()
- 구간화 (연속값을 프로파일링할 때 유용)CASE WHEN CONDITION1 THEN RETURN_VALUE_1END*오류발생 시, 반환값 데이터 타입을 cast로 변경하여 해결한다 → CAST(1234 as varchar)SELECTWHEN D>100 THEN ‘J’CAS WHEN~~
- 이런 식으로 설정 CASE문 SELECT안에 여러개 쓸 수 있다 ROUND(값, 소수점자리) → ROUND(sales, 2) 이런 식으로
- ELSE ‘M’ END AS ‘KJM’,
- CASE WHEN D≤100 THEN ‘K’
- 혹은 1234::varchar 으로 해도 바뀐다 타입
- *하나의 case문 안의 모든 then 반환값은 데이터 타입이 같아야한다 (문자/순자/논리 등)
- ELSE RETURN_VALUE_2
- CASE문 활용
- 윈도우 함수 (여러 행에 걸친 수행을 수행한다)COUNT, SUM, AVG, MIN, MAX ,RANK, FIRST_VALUE 등ORDER BY 는 정렬 기준
- PARTITION BY 에 해당하는 필드로 구분해 연산 수행
- function (필드명) over (partition by 필드명 order by 필드명)
- UNION ALL : 여러 쿼리 결과를 조합해 하나의 데이터셋으로 만든다 (각 쿼리의 열갯수가 서로 동일해야 한다, 데이터 타입이 호환되어야 한다)‘1980’ as year,FROM country_popSELECT country,year_1990 as population이런 식으로 합친다
- FROM country_pop
- ‘1990’ as year,
- UNION ALL
- year_1980 as population
- SELECT country,
- NULLIF : 같으면 null, 다르면 첫번째 숫자 반환) → nullif(date, ‘2015-03-03') 같으면 null, 다르면 date를 반환한다
- date : 데이터타입 → cast(—- as date)
3. 시계열 분석
시간순으로 정렬된 데이터 배열 (일일 최고 기온, S&P장 마감 지수, 일일 걸음 수 등)
시계열 분석을 통해 시간에 따른 데이터 변화를 이해하고 정량화 할 수 있다
예측은 특히, 시계열 분석의 주요 목표 중 하나이다
과거의 값으로 미래의 값을 예측하며, 시장상황, 대중트렌드, 제품도입 시기 등
정확한 예측은 어려워도, 계획 수립의 좋은 근거를 얻거나, 인사이트를 얻을 수 있다
- 깃허브 페이지에서 csv 파일 다운로드 받기
- PgAdmin에서 테이블 만들기!! (아래와 같이 각 열의 데이터타입을 넣어준다)
CREATE TABLE sales_data (
sales_month DATE, naics_code TEXT, kind_of_business TEXT, reason_for_null TEXT, sales INTEGER
);
3. CSV파일을 임포트 해준다.
COPY sales_data FROM '/path/to/your_csv_file.csv' DELIMITER ',' CSV HEADER NULL AS '\N';
여기서 시간을 ㅜㅜ 엄청 뺐겼는데 그래도 한 번 해보니까 다음부턴 수월할 거 같다!
'데싸 추가 독학' 카테고리의 다른 글
회귀 모델의 종류!! (0) | 2024.02.01 |
---|---|
[캐글스터디] #2 House Price (Scatterplot, Boxplot) (0) | 2024.01.26 |
[캐글스터디] #2 House Price (왜도, 첨도, distplot, kde, concat) (0) | 2024.01.26 |
[SQL독학] <SQL로 시작하는 데이터 분석> 1-3장 (0) | 2024.01.17 |
[헷갈린다] Python Class (1) | 2024.01.06 |