TIL

[멋쟁이사자처럼 부트캠프 그로스 마케팅] 데이터 분석 개론 : Pandas (2)

•ɞ• 2025. 2. 11. 23:35

학습목표

  • Pandas 데이터 정렬 및 필터링 실습
  • Pandas 데이터 그룹화 및 집계 실습

 

1. Sorting

  • sort_value( )
df = pd.DataFrame(data)

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

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

# 매출액 내림차순 정렬 후, 동일한 매출액 내에서 클릭수 오름차순 정렬
df_sorted_multi = df.sort_values(by=["매출액", "클릭수"], ascending=[False, True])

 

 

2. Filtering

  • boolean indexing
# 클릭수가 800 이상인 캠페인만 선택
high_clicks = df[df["클릭수"] >= 800]

filtered_df = df[(df["클릭수"] >= 800) & (df["전환율"] >= 0.05)] # AND
filtered_df = df[(df["클릭수"] >= 800) | (df["전환율"] >= 0.05)] # OR

 

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

filtered_df = df.query("매출액 >= 4000000 and 전환율 >= 0.05")
filtered_df = df.query("매출액 >= 4000000 or 전환율 >= 0.05")

 

  • isin( )

: 특정 값을 포함하는 데이터 선택

# "봄맞이 할인", "겨울 세일" 두 개의 캠페인만 포함하는 데이터 선택
selected_campaigns = df[df["캠페인"].isin(["봄맞이 할인", "겨울 세일"])]

 

  • str.contains( )

: 특정 문자열을 포함하는 데이터 선택

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

 

  • between( )

: 특정 범위에 있는 데이터 선택

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

 

 

3. groupby

# 캠페인별 매출 합산 (하나의 열)
df_grouped = df.groupby("캠페인")["매출액"].sum()

# 캠페인과 지역별 매출 합산 (여러 개의 열)
df_grouped = df.groupby(["캠페인", "지역"])["매출액"].sum()

# agg(regation) -- 여러 개의 집계 함수 적용
df_grouped = df.groupby("캠페인").agg({"매출액": ["sum", "mean"], "클릭수": ["sum", "mean"]})

# 그릅화된 데이터 필터링
df_filtered = df.groupby("캠페인")["매출액"].sum()
df_filtered = df_filtered[df_filtered >= 7000000] # 그룹화 후 필터링하면 됨

 


 

사실 마케팅 예제 이놈이 진짜인데..

내일부터는 SQL 복습이 시급해서 주말에 할게요..

아무도뭐라고안함