[내일배움캠프] SQL/Python 코드카타, 아티클 스터디, 데이터 전처리&시각화

sleekstar·2025년 6월 2일

SQL 코드카타

문제 1.

년, 월 성별 별 상품 구매 회원 수 구하기

처음 작성한 답안(오답)

SELECT
    YEAR(O.SALES_DATE) YEAR,
    MONTH(O.SALES_DATE) MONTH,
    U.GENDER,
    COUNT(*) USERS
FROM USER_INFO U JOIN ONLINE_SALE O
    ON U.USER_ID = O.USER_ID
WHERE U.GENDER IS NOT NULL
GROUP BY U.USER_ID
ORDER BY YEAR, MONTH, GENDER ASC

PROBLEM

아무래도 컬럼이 중복된 것 같다.

YEAR가 2022, MONTH가 1, GENDER가 0인 행이 1개만 있어야 되는데, 여러 개로 갈라졌다.

IDEA

USER_ID가 겹쳐도 하나만 카운트하도록 COUNT(DISTINCT U.USER_ID)를 써보면 어떨까?
이를 적용하니 정답이었다.

정답 코드

SELECT
    YEAR(O.SALES_DATE) YEAR,
    MONTH(O.SALES_DATE) MONTH,
    U.GENDER,
    COUNT(DISTINCT U.USER_ID) USERS
FROM USER_INFO U INNER JOIN ONLINE_SALE O
    ON U.USER_ID = O.USER_ID
WHERE U.GENDER IS NOT NULL
GROUP BY YEAR, MONTH, GENDER
ORDER BY YEAR, MONTH, GENDER ASC;

TRY

GROUP BY, ORDER BY에서 별칭을 쓰곤 하는데, MySQL에서는 허용되지만 오류가 나는 DBMS도 있다고 한다. 원 표현식을 쓰는 연습도 해야겠다.

아티클 스터디

사용자 행동 데이터 분석: 3. 데이터를 분석할 때 주의할 점 4가지

  • 사용자 행동 데이터를 분석할 때 주의할 점 4가지
    1. 사용자들은 우리가 원하는 대로 서비스를 쓰지 않는다.
      ⇒ 예상과 다른 사용자 행동 데이터가 나올 수 있음. 이를 염두에 두고 있는 그대로 데이터를 봐야 함
    2. 데이터가 기록되는 방식을 정확하게 이해해야 한다.
      ⇒ 예상한 대로 서비스를 잘 사용하더라도, 데이터가 기록되는 방식이 본인의 지식과 달라 오류가 발생하는 경우도 있다.
      EX 회원가입 프로세스에서 어느 단계에 어떤 데이터가 쌓이는지 제대로 파악하지 못하면 문제가 생겨도 바로 알아채지 못할 수 있음.
    3. 데이터는 언제나 잘못 기록될 가능성이 있다.
      ⇒ 사용자 행동 데이터를 기록하는 방식은 여러가지. 플랫폼별로 데이터가 쌓이는 조건이 조금씩 다를 수 있음. 따라서 항상 데이터의 정합성을 의심하며 살펴보는 습관이 필요하다.
    4. 데이터를 조회할 때 주의가 필요하다.
      ⇒ 사용자 행동 데이터는 짧은 기간에도 매우 많은 데이터가 쌓이기 때문에 조회할 때 주의가 필요하다. 예를 들어 클릭 수는 1000번까지도 쌓일 수가 있음. 쿼리를 잘못 설정하면 데이터베이스에 과부하가 걸리거나 서버가 다운될 수 있으므로 주의가 필요하다.
  • 주요 포인트: 데이터를 무작정 분석해서 적용하면 오류가 발생하고 사용자의 불편을 초래하는 등 문제가 생길 수 있다. 따라서 데이터 분석에서 유의할 점을 항상 염두에 두어야 한다.


데이터 전처리&시각화 강의 1-2주차

☑️ 데이터 전처리를 왜 해야하는가?

ex 성별=>같은 남자를 나타내는 데이터라도 '남', '남성'과 같이 다른 형태로 표시될 수 있음.
즉, 실제 데이터는 원하는 형태로 구축되어있지 않다.
데이터를 통해 무엇을 얻고자 하는지, 그 목적을 달성하기 위해 데이터 전처리가 필요

☑️ Pandas 란?

Python에서 데이터를 조작하고 쉽게 분석할 수 있게 도와주는 라이브러리

  • 대용량 데이터 처리가 가능 : Pandas는 데이터를 메모리에 로드하고, 다양한 연산을 빠른 처리가 가능하며 대용량 데이터를 처리하는데 최적화되어 있습니다.
  • 데이터 조작 기능 : 데이터 정렬, 필터링, 집계, 결측값 처리 등 데이터를 쉽게 가공할 수 있음
  • 데이터 시각화 기능 제공 : Matplotlib, Seaborn , … , etc
  • 데이터를 구조화하여 분석할 수 있음 : DataFrame이라는 자료형을 제공하여 데이터를 표 형태로 나타내어 분석이 가능함

☑️ Pandas 구조


시리즈는 컬럼 1개, 데이터프레임은 여러개

  • DataFrame = 표 형태
    • index : 각 아이템을 특정할 수 있는 고유의 값 (엑셀에서는 좌측 열순서로 생각하면됨)
    • columns : 하나의 속성을 가진 데이터 집합
  • Series = 하나의 속성을 가진 데이터 집합 (= DataFrame 표에서 열 1줄이라고 생각하면 쉬움)
    • value + index
profile
기록용

0개의 댓글