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 복습이 시급해서 주말에 할게요..
아무도뭐라고안함