
1) conversion_rate라는 새로운 열을 만들고, 각 행에 대해 conversions / clicks를 계산하세요.
# 전환율 계산: 새로운 컬럼 conversion_rate 생성
df["conversion_rate"] = df["conversions"]/df["clicks"]
df["conversion_rate"]
2) clicks가 0인 경우에는 전환율을 0으로 설정하세요.
#이상치 처리: Clicks 값이 0인 경우 결측치(0)로 변경
df.loc[df['clicks'].isna()] #isna 값 = 0
3) campaign, clicks, conversions, conversion_rate 컬럼만 선택하여 앞부분 5개 행을 출력하세요.
#결과 일부 출력
print(df[["campaign", "clicks", "conversions", "conversion_rate"]].head())
print(df[["campaign", "clicks", "conversions", "conversion_rate"]].tail())
🔩 Level. 2 : 데이터 시각화
[문제 설명]
각 광고 매체(media)는 서로 다른 성과를 보입니다.
매체별로 impressions(노출 수)와 clicks(클릭 수)의 총합을 비교하여,
성과 차이를 시각적으로 비교할 수 있도록 막대 그래프를 작성하세요.
[요구사항]
매체 별 그룹화
Bar Chart 작성
그래프 꾸미기
# 라이브러리 불러오기
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
df #쓸 데이터
#x축 준비
x = np.arange(len(media)) #df DataFrame의 'media' 열에 있는 데이터의 개수만큼 0부터 시작하는 정수 시퀀스를 생성하여 변수 x에 저장하는 코드
# 막대그래프 생성
width=0.35 #막대 그래프 너비 생성 보통적으로 #0.35 또는 0.4를 쓴다.
plt.bar(x - width/2, df['impressions'], width=width, label='Impressions', color='orange') #두개의 그래프가 겹쳐 보이지 않게 나누기
#너비를 설정하고 노출수의 x축을 너비/2 한 값 만큼 빼서 움직임, 색깔도 오랜지 색으로 바꿈
plt.bar(x + width/2, df['clicks'], width=width, label='Clicks', color='orangered')
#너비를 설정하고 노출수의 x축을 너비/2 한 값 만큼 더해서 움직임, 색깔도 오랜지 색으로 바꿈
plt.xticks(x, df['media']) #필요 시 plt.xticks 사용 / x축에 정수가 출력돼서 알아보니 이름을 지정해주는 xticks가 있어서 사용
# 빈칸을 작성하세요
plt.title('Total Impressions and Clicks by Media')
plt.xlabel('Media')
plt.ylabel('Total Count')
plt.xticks(rotation=0)
plt.legend(["Impressions", "Clicks"])
plt.grid(axis='x') #x축으로 그래프가 나뉘어져 있어서 axis를 x축으로 나눔
# 그래프 표시
plt.show()
[결과 값]
