본문 바로가기

전체 글131

프로그래머스 데이터분석 데브코스 1차 프로젝트 셀프리뷰 프로젝트 목표는 데이터셋을 구해서 SQL과 Excel, Tableau 같이 지금까지 과정에서 배운걸 사용하여 분석을 진행하는 것이다. 2024년 3월 11일부터 2024년 3월 20일까지 약 10일간 진행하였다. 처음은 아래 링크의 데이터셋으로 분석을 진행했다. https://www.kaggle.com/datasets/ayushparwal2026/online-ecommerce Online-eCommerce buying and selling of goods or services over the world. www.kaggle.com 단순히 보았을때 결측치가 적었고 데이터셋 이해하기가 쉬울것 같아서 조원들에게 이 데이터셋을 사용해서 진행하자고 했다. 하지만 유의미한 결과를 찾기 힘들었고, 데이터가 잘못 적재.. 2024. 3. 25.
프로그래머스 데이터분석 데브코스 1차 프로젝트 자료 Query with count_r_c as( SELECT FORMAT_TIMESTAMP('%Y-%m', o.created_at) AS year_month, count(case when o.status = 'Returned' then 1 end) as returned, count(case when o.status = 'Cancelled' then 1 end)as cancelled, count(case when o.gender = 'F' then 1 end) as order_by_female, count(case when o.gender = 'M' then 1 end) as order_by_male FROM `bigquery-public-data.thelook_ecommerce.orders` o group .. 2024. 3. 25.
프로그래머스 데이터분석 데브코스 7-1 길고 긴 SQL의 여정이 일부 마무리되고 Python월드의 푸바오 pandas를 배우기 시작했다. 여러가지 기본 함수들과 Dataframe의 기초를 배웠다. 익숙치 않은, 처음보는 함수들도 있었지만 이것들은 일단 계속 써가면서 익히는게 가장 쉽고 빠르기에 따로 정리는 하지 않겠다. 매우 중요하다고 느낀 부분은 얕은 복사와 깊은 복사 부분이다. 왜냐하면 지금까지는 커봤자 10mb, 20mb 정도의 csv 파일을 pandas로 조작해보았는데 엄청 큰 데이터셋에서 의도치 않게 원본 데이터셋을 바꿔버리면 확인, 수정에 시간이 매우 걸릴 것이라는 생각이 들었다. 그리고 pandas로 데이터셋을 조작하며 단 한번도 얕은, 깊은 복사에 대해 생각해본적이 없었기 때문이다. df_train_to_rs_tp = df_tr.. 2024. 3. 25.
희망이 2024. 3. 22.
프로그래머스 데이터분석 데브코스 6-5 4일차 숙제 리뷰와 SQL의 고급 문법들을 배웠다. Transaction Atomic하게 실행되어야 하는 SQL들을 묶어서 하나의 작업처럼 처리하는 방법 DDL이나 DML중 레코드를 수정/ 추가/ 삭제 한 것에만 의미가 있음 Select에는 트랙잭션을 사용할 이유가 없음 Begin과 End혹은 Begin, Commit 사이에 해당 SQL들을 사용 Transaction 과정에서 오류가 났다면 Rollback 가능 정리는 가볍게 이정도이다. 이어 Python 에서 Transaction을 관리하는 방법도 배웠다. Transaction 자체가 생소한 개념이지만 이전에 Transaction임을 인지하지 못하고 그냥 이렇게 해야 실행이 되니까 썼던 경험이 있었다. 이전에 Discord 챗봇을 만들고 서비스 할 때 .. 2024. 3. 22.
프로그래머스 데이터분석 데브코스 6-3 마참내 너무 좋은 환경에서 쿼리를 짤 수 있게 되었다. 여러가지 실습을 진행하였는데 다시한번 반드시 기억해야 할 것을 알려주셨다. 가볍게 정리해 보자면 현업에서는 깨끗한 데이터셋이 존재하지 않는다. 말 그대로 이런 실습 환경, 캐글 데이터셋처럼 어느정도 정제된 데이터셋이 아닐 수 밖에 없다. 1. 항상 데이터셋을 의심할 것. / 어딘가에 결측치가 있을 가능성, 이상치가 가득할 가능성, 잘못 수집되었을 가능성 등등 2. isnull과 같은 함수로 확인해 보는것이 아닌 실제 레코드의 일부라도 한번 확인해 보는것이 큰 도움이 된다. 항상 데이터 품질을 의심하는 버릇이 필요하다. 1. 중복체크 2. 최근 데이터 존재 여부(freshness) 3. primary key uniqueness 지켜지는지 확인 4. 결.. 2024. 3. 22.
프로그래머스 데이터분석 데브코스 6-2 기본적인 SQL 쿼리들을 복습하고 jupyter notebook 에서 aws redshift 접속하는 방법을 배웠다. 강의에선 colab을 사용했지만 vscode의 ui를 포기할수 없기에 로컬 환경에서도 시도해 보았다. https://arin-nya.tistory.com/37 jupyter notebook에서 sql 쓰기 %sql postgresql://ID:Password@DBadress​ %sql postgresql://ID:Password@DBaddress %load_ext sql pip install ipython-sql pip install pyscopg2-binary PostgreSQL db를 사용하기 위해 pyscogp2 라이브러리도 함께 설치했다. #sql server pip instal .. 2024. 3. 19.
jupyter notebook에서 sql 쓰기 %load_ext sql pip install ipython-sql pip install pyscopg2-binary PostgreSQL db를 사용하기 위해 pyscogp2 라이브러리도 함께 설치했다. #sql server pip install pyodbc #MySQL pip install PyMySQL 혹여나 주피터에서 접속하고자 하는 DB가 mysql이나 sql server 라면 위의 패키지를 설치하면 된다. pyscopg2 같은 경우에 설치하는 환경에 PostgreSQL 이 설치되어있지 않으면 설치 과정에 오류가 난다. 그래서 라이브러리, 함수만 담겨있는 binary 패키지를 설치하면 대부분 정상적으로 작동된다. %load_ext sql 으로 주피터에서 sql 엔진을 돌려주고 %sql postgr.. 2024. 3. 19.
프로그래머스 데이터분석 데브코스 6-1 클라우드 환경에서 돌아가는 데이터베이스, 웨어하우스의 종류를 배웠다. 기본적인 스키마(일반적으로 사용되는)를 배웠다. Star schema, denomalize schema가 있었는데 big query의 public ware house를 보면 각 테이블간 join을 사용할 수 있는 필드들이 있었다. 한개의 star schema가 아닌 users, orders, events 3개의 스키마에서 파생된 스키마들이 있는 형태였다. csv파일이지만 이렇게 단일 테이블, DB로 이루어진걸 denomalize schema로 부르는 것 같다. 위와 같은 구조에서 특정 값을 수정, 조회 하려면 일일이 접근해서 수정해야 하지만 star schema에서는 쿼리 작성이 조금 힘들뿐 작성만 잘하면 원하는 레코드를 뽑기가 비교적.. 2024. 3. 18.