나의 기록
[TIL / Today I Learned] 20231227_groupby 질문 본문
할인율 별 신청자 수 분석하기
📖 결제 마지막 페이지에서 할인 혜택을 제공할 경우 결제율을 올릴 수 있다는 것을 확인 했습니다.
그렇다면, 얼마만큼의 할인 혜택을 제공하는 것이 결제 전환율을 가장 높일 수 있는지 궁금해졌습니다!
할인률이 높으면 높을수록 결제가 많아지는지 데이터를 통해 알아볼까요~?
증명하고자 하는 가설 :
할인율이 높으면 높을 수록 결제 전환율도 높을 것이다.
그리하여, 각 2706명에게 1만원, 2만원, 3만원 쿠폰을 동시에 발송 하였다
|
[내가 작성한 코드]
# 필요한 라이브러리 불러오기
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rc('font', family='NanumBarunGothic')
sparta_data = pd.read_table('/content/user_db1.csv',sep=',')
sum_of_students_by_discounted_1 = sparta_data[sparta_data['discounted']==10000]['user_id'].count()
sum_of_students_by_discounted_1
sum_of_students_by_discounted_2 = sparta_data[sparta_data['discounted']==20000]['user_id'].count()
sum_of_students_by_discounted_2
sum_of_students_by_discounted_3 = sparta_data[sparta_data['discounted']==30000]['user_id'].count()
sum_of_students_by_discounted_3
#각 결제 인원에서 실제 실험 인원인 2706명을 나누고 각 퍼센테이지 구하기
percent_of_students_by_discounted_1 = sum_of_students_by_discounted_1/2706 *100
percent_of_students_by_discounted_2= sum_of_students_by_discounted_2/2706 *100
percent_of_students_by_discounted_3= sum_of_students_by_discounted_3/2706 *100
print(percent_of_students_by_discounted_1 , percent_of_students_by_discounted_2, percent_of_students_by_discounted_3 )
#그래프 사이즈
plt.figure(figsize=(10,5))
#x 그룹
x_list =["1만원할인", "2만원할인", "3만원할인"]
#y 값
y_list = [percent_of_students_by_discounted_1 ,percent_of_students_by_discounted_2, percent_of_students_by_discounted_3]
#x,y값 설정
plt.bar(x_list, y_list)
#그래프 타이틀
plt.title('할인율에 따른 결제 전환도 분석')
#x축 레이블
plt.xlabel('할인율')
#y축 레이블
plt.ylabel('결제 전환율')
#그래프 보여주기
plt.show()
|
[정답 코드]
#Pandas 라이브러리 불러오기
import pandas as pd
# 파일 불러오기
sparta_data = pd.read_table('/content/user_db1.csv',sep=',')
#데이터 앞부분 확인 하기
sparta_data .head()
#할인율별 수강생 수 구하기
students_discounted = sparta_data.groupby('discounted')['user_id'].count()
students_discounted
#그래프로 시각화 하기
#그래프 사이즈
plt.figure(figsize=(10,5))
x_list =["1만원 쿠폰 그룹", "2만원 쿠폰 그룹", "3만원 쿠폰 그룹"]
#x,y값 설정
plt.bar(x_list, students_discounted.values)
#그래프 타이틀
plt.title('할인 율 별 수강 신청 자 수')
#x축 레이블
plt.xlabel('할인 적용 범위')
#y축 레이블
plt.ylabel('수업 신청한 수강생')
#그래프 보여주기
plt.show()
|

여기서 생긴 질문은
내가 작성한 코드
sum_of_students_by_discounted_1 = sparta_data[sparta_data['discounted']==10000]['user_id'].count()
sum_of_students_by_discounted_1
sum_of_students_by_discounted_2 = sparta_data[sparta_data['discounted']==20000]['user_id'].count()
sum_of_students_by_discounted_2
sum_of_students_by_discounted_3 = sparta_data[sparta_data['discounted']==30000]['user_id'].count()
sum_of_students_by_discounted_3
▽
정답 코드
students_discounted = sparta_data.groupby('discounted')['user_id'].count()
students_discounted
그렇다면 왜 이전 문제에서는 group by를 안 해줬는지 궁금하여 질문 하였다.
답변을 확인 했는데, 결국 내가 쓴 코드도 맞는 답이었다.
이로써 두 가지 방법으로 작성할 수 있다는 것을 깨달았다.
내가 작성한 여러 줄의 코드를 단 한 줄로 적을 수 있었던 것이다.

'개발일지 > TIL' 카테고리의 다른 글
[TIL / Today I Learned] 20231229_ Group by절 사용 질문 (1) | 2023.12.29 |
---|---|
[TIL / Today I Learned] 20231228 프로덕트 개선은 정말 도움이 되었을까?_ 전처리 및 분석 및 시각화 (1) | 2023.12.28 |
[TIL/ Today I Learned] 20231226 (1) | 2023.12.27 |
[TIL/Today I Learned] 수강생들이 가장 많이 혹은 가장 적게 듣는 시간과 요일을 데이터 분석으로 찾기 (1) | 2023.12.22 |
[TIL / Today I Learned] Day3 (0) | 2023.12.21 |