오늘은 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)
- 각 캠페인의 평균 클릭 수를 계산함
뭔가 정렬, 필터링, 그룹화는 많이 사용될 거 같아서 집중해서 들었다 .... 잘 하고 있는게 맞겠지 ?? 앞으로도 열심히 해보자 !!
'멋쟁이사자처럼 그로스마케터2기' 카테고리의 다른 글
[멋쟁이 사자처럼 그로스마케팅 2기 회고] 8일차 (SQL, 테이블 다루기) (0) | 2025.06.12 |
---|---|
[멋쟁이 사자처럼 그로스마케팅 2기 회고] 7일차 (MongoDB) (0) | 2025.06.12 |
[멋쟁이 사자처럼 그로스마케팅 2기 회고] 5일차 (회고의 날) (2) | 2025.06.08 |
[멋쟁이 사자처럼 그로스마케팅 2기 회고] 4일차 Pandas (0) | 2025.06.08 |
[멋쟁이 사자처럼 그로스마케팅 2기 회고] 3일차 반복문 (0) | 2025.06.06 |