[TIL#20 250317] 자격증 시험이 다가올수록 공부를 안 하게 되는 모순

강민지·2025년 3월 17일

데이터분석_TIL

목록 보기
20/81

Daily plan

🌞오전

- SQL 코드카타 77~81 (5문제)
- 10시 파이썬 라이브세션
- 라이브세션 정리

🔥 오후

- 데이터전처리&시각화 강의 3주차
- 파이썬 라이브세션 3+4회차 내용 정리 + 코드 복습
- 빅분기 1과목 정리+암기

🌝 저녁

- 알고리즘 코드카타 17~19번(3문제)
- 데일리 스크럼 + TIL 제출

SQL 코드카타

77번부터 갑자기 난이도 다시 기초 수준으로 확 내려가서 약간 당황,,,

Q77 - Recyclable and Low Fat Products

select product_id
from products
where low_fats="Y" 
	and recyclable="Y"

Q78 - Find Customer Referee

select name
from customer
where referee_id<>2 
	or referee_id is null

Q79 - Big Countries

select name, population, area
from world
where area>=3000000 
	or population>=25000000

Q80 - Article Views I

select distinct author_id as id
from views
where author_id=viewer_id
order by id

Q81 - Invalid Tweets

select tweet_id
from tweets
where length(content)>15

파이썬 라이브세션 3회차+4회차

1회차+2회차 정리는 여기에..

Python 활용 테이블 결합

1. Python 데이터 결합

Merge

  • 공통 컬럼을 기준으로 테이블을 병합하는 pandas 함수 (SQL구문의 join과 가장 유사함)

  • 주요 옵션(parameters)

    • on: 조건 컬럼이 한개인지, 여러개인지
    • how: 어떤 조인 방식을 사용할 것인지
    • left on/ right on: 열 기준 병합 시, 기준으로 할 열의 양측 이름이 다른 경우 각각 어떤 열을 기준으로 할지 지정
    • sort: 인덱스 정렬 여부 (True or False)
    • suffixes: 중복된 컬럼 이름의 처리
    • indicator: True로 하면 마지막 열에 병합 정보를 출력해줌
  • 문법 예시

merge_df = pd.merge(df2, df3, how='inner', on='Customer ID')

# 공통 컬럼이 2개 이상인 경우
pd.merge(df2, df3, how='inner', on=['공통컬럼1', '공통컬럼2']

# 두 테이블에서 기준열 이름이 다른 경우
pd.merge(df2, df3, how='inner', left_on='Customer ID', right_on='user_id')

# 공통 컬럼을 개별로 출력하고 싶은 경우
pd.merge(df2, df3, how='inner', on='Customer ID', suffixes=('_left','_right'))

Join

  • 인덱스 기준으로 테이블을 병합하는 pandas 함수

  • 두 테이블 간의 관계보다는 단순히 인덱스를 기준으로 테이블을 붙이는 것이기 때문에 활용도가 낮음

  • 주요 옵션

    	- **how**: 어떤 조인 방식을 사용할 것인지 (inner, outer, left, right)
    • lsuffix / rsuffix: 이름이 같은 컬럼이 있을 경우 문자열을 지정하여 부여
    • sort: 인덱스 정렬 여부 (True/False)
  • 문법 예시

df.join(df2, how='left', lsuffix='1', rsuffix='2', sort=True)

Concat

  • 여러 데이터프레임 또는 시리즈를 특정 축을 따라 연결하는 데 사용하는 pandas 함수

  • 주요 옵션

    	- axis: 수직결합/수평결합 설정 (axis=0 수직결합(기본값) / axis=1 수평결합)
    • join: 어떤 조인 방식을 사용할 것인지
    • join_axes: 조인 축 지정
    • keys: 데이터프레임 축이름 지정
    • ignore_index=True: 인덱스 재배열
  • 문법 예시

# 세로 결합
pd.concat([df2,df3], axis=0, ignore_index=True, join='inner')
# 가로 결합
pd.concat([df2,df3], axis=1, ignore_index=True, join='inner')

Append

  • 데이터프레임에 행을 추가하는 메서드로, 두 데이터프레임을 행 기준으로 결합하는 pandas 함수

  • 주요 옵션

    	- ignore_index: 기존 인덱스를 사용할지의 여부를 결정 (False로 설정 시 0,1,..,n이 부여됨)
    • sort: 열을 사전적으로 정렬할 지의 여부를 결정
  • 문법 예시

df.append(df2)   # df2가 df 아래에 결합
				# 단순결합 (없는 건 NaN으로 처리되어 결합)
  • 기능이 없어질 예정이므로 concat으로 변경하여 실행
  • 경고메세지 무시하는 코드
import warnings
warnings.filterwarnings('ignore')

Merge vs Join

  • Merge는 컬럼 기준 / Join은 인덱스 기준으로 두 데이터프레임을 결합
  • Merge는 결합의 기준이 되는 컬럼을 지정하고 / Join은 기준이 되는 컬럼을 지정하거나 인덱스를 기준으로 결합할 수도 있음
  • Merge는 판다스 라이브러리 함수 중 하나로, 두 데이터프레임을 input값으로 받고 / Join은 기준이 되는 dataframe의 메서드 형태로 호출되어 결합할 테이블 1개를 인자로 받음

Concat vs Append

  • Concat은 수직, 수평 결합 모두 가능하고 / Append는 수직 결합만 가능함

일기


사이버 불링의 현장
저희 팀 정말 화목하고 재밌어요^^ (살려주세요)

라이브 세션 코드 복습하다보니까 시간이 다 가서 오늘 별로 한 게 없어 보인다..
근데 사실 없어 '보이는' 게 아니라 진짜 없긴 함.
빅분기 큰일났다. 나머지 공부 해야지,,

할 건 엄청 밀렸는데 정신못차리고 팀원들이랑 수다만 엄청 떨었다.
해리포터 기숙사 얘기하다가 영화 추천하다가,, 젭 공간에서 벗어나지 못하는 지옥에 갇혀버림...

TIL 제출해놓고 공부 더 하다가 자야겠다..

0개의 댓글