멋쟁이사자처럼 그로스마케터2기

[멋쟁이 사자처럼 그로스마케팅 2기 회고] 6일차 (Pandas 정렬)

전젬민 2025. 6. 9. 21:04

오늘은 Pandas 정렬, 데이터 필터링, 그룹화에 대해서 배웠다.

 

생각보다 간단하긴 했는데 한번에 여러 내용을 머리에 넣으려고 하니까 용량 초과될 뻔 했다 ㅎ,,

 

데이터 정렬

sort_values() 를 활용한 단일 열 정렬

 

변수.sort_values(by="A", ascending=True)

  • ascending=True → 오름차순(작은 값부터 큰 값 순서)
  • ascending=False → 내림차순(큰 값부터 작은 값 순서)

이런 형태로 단일 열을 정렬한다.

 

정렬하고 싶은 형태에, by 뒤에 있는 A 컬럼을 기준으로 오른차순으로 정렬할 것인지, 내림차순으로 정렬할 것인지 선택

 

사용 예시

import pandas as pd

# 그로스 마케팅 데이터 예제
data = {
    "캠페인": ["봄맞이 할인", "여름 특가", "가을 이벤트", "겨울 세일"],
    "매출액": [3500000, 5000000, 2200000, 4300000],
    "클릭수": [750, 1200, 540, 980],
    "전환율": [0.045, 0.052, 0.038, 0.049]
}

df = pd.DataFrame(data)

# 매출액 기준 오름차순 정렬
df_sorted_asc = df.sort_values(by="매출액", ascending=True)
print(df_sorted_asc)

# 매출액 기준 내림차순 정렬
df_sorted_desc = df.sort_values(by="매출액", ascending=False)
print(df_sorted_desc)

 

데이터 필터링

boolean indexing을 활용한 필터링

  • df["클릭수"] >= 800 → True 또는 False 값을 반환
  • df[...] → True 값이 있는 행만 선택
# 클릭수가 800 이상인 캠페인만 선택
high_clicks = df[df["클릭수"] >= 800]
print(high_clicks)

 

quert()를 활용한 필터링

# 매출액이 400만 원 이상인 캠페인 선택
filtered_df = df.query("매출액 >= 4000000")
print(filtered_df)

 

특정 값이 포함된 데이터 필터링 isin()

# 특정 캠페인만 선택
selected_campaigns = df[df["캠페인"].isin(["봄맞이 할인", "겨울 세일"])]
print(selected_campaigns)

 

문자열을 포함하는 데이터 필터링 str.contains()

# "할인"이 포함된 캠페인만 선택
discount_campaigns = df[df["캠페인"].str.contains("할인")]
print(discount_campaigns)

 

특정 범위에 있는 데이터 필터링 between()

# 매출액이 300만 원에서 450만 원 사이인 캠페인 선택
filtered_df = df[df["매출액"].between(3000000, 4500000)]
print(filtered_df)

 

 

데이터 그룹화

df.groupby("A")["B"].sum() 이런 방식으로 그룹화를 함

 

데이터 그룹화 왜 하는거지

: 데이터 그룹화는 특정 열의 값을 기준으로 데이터를 묶어 분석하는 기법이다. 이를 활용하면 다음과 같은 분석이 가능하기 때문에

- 캠페인별 매출 합산

- 지역별 클릭 수 비교

- 전환율 평균 분석

 

캠페인별 매출 합산 그룹화

df_grouped = df.groupby("캠페인")["매출액"].sum()
print(df_grouped)

- 같은 캠페인명을 기준으로 데이터를 묶고, 매출액을 합산함

 

캠페인별 평균 클릭 수

df_grouped = df.groupby("캠페인")["클릭수"].mean()
print(df_grouped)

- 각 캠페인의 평균 클릭 수를 계산함

 

 

 

 

 

뭔가 정렬, 필터링, 그룹화는 많이 사용될 거 같아서 집중해서 들었다 .... 잘 하고 있는게 맞겠지 ?? 앞으로도 열심히 해보자 !!