Notice
Recent Posts
Recent Comments
Link
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

나의 기록

[TIL / Today I Learned] 20231227_groupby 질문 본문

개발일지/TIL

[TIL / Today I Learned] 20231227_groupby 질문

리베린 2023. 12. 27. 20:29

할인율 별 신청자 수 분석하기

📖 결제 마지막 페이지에서 할인 혜택을 제공할 경우 결제율을 올릴 수 있다는 것을 확인 했습니다.
그렇다면, 얼마만큼의 할인 혜택을 제공하는 것이 결제 전환율을 가장 높일 수 있는지 궁금해졌습니다!
할인률이 높으면 높을수록 결제가 많아지는지 데이터를 통해 알아볼까요~?
증명하고자 하는 가설 :
할인율이 높으면 높을 수록 결제 전환율도 높을 것이다.
그리하여, 각 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를 안 해줬는지 궁금하여 질문 하였다.

답변을 확인 했는데, 결국 내가 쓴 코드도 맞는 답이었다.

이로써 두 가지 방법으로 작성할 수 있다는 것을 깨달았다.

내가 작성한 여러 줄의 코드를 단 한 줄로 적을 수 있었던 것이다.