비디오게임 판매량 및 등급

비디오게임 판매량 및 등급#

데이터셋 설명

여러 플랫폼의 년도별 출시된 게임 데이터셋 출처 : https://mlcourse.ai/
Name : 게임명
Platform : 출시 플랫폼
Year_of_Release : 출시년도
Genre : 장르
Publisher : 출시 업체
{지역별}_Sales : 판매량
User_Score : 유저스코어 (tbd : 측정 안됨)
Developer : 개발 업체
Rating : 이동등급()

dataUrl =’https://raw.githubusercontent.com/Datamanim/video/master/video_games_sale.csv

Question 1

데이터 Url을 이용하여 df변수에 데이터를 로드하라

Hide code cell source
import pandas as pd
df = pd.read_csv('https://raw.githubusercontent.com/Datamanim/video/master/video_games_sale.csv',index_col=0)
type(df)
pandas.core.frame.DataFrame

Question 1

video_games_sales 데이터셋(video_games_sales.csv)의 출시년도(Year_of_Release) 컬럼을 10년단위(ex 1990~1999 : 1990)로 변환하여 새로운 컬럼(year_of_ten)에 추가하고 게임이 가장 많이 출시된 년도(10년단위)와 가장 적게 출시된 년도(10년단위)를 각각 구하여라.

Hide code cell source
df['Year_of_ten'] = df['Year_of_Release'].map(lambda x: x//10*10)

Max = int(df.Year_of_ten.value_counts().index[0])
Min = int(df.Year_of_ten.value_counts().index[-1])
print('Max:',Max,'Min:',Min)
Max: 2000 Min: 1980

Question 1

플레이스테이션 플랫폼 시리즈(PS,PS2,PS3,PS4,PSV)중 장르가 Action로 발매된 게임의 총 수는?

Hide code cell source
Ans = len(df.loc[(df.Platform.isin(['PS','PS2','PS3','PS4','PSV'])) & (df.Genre=='Action')])
Ans
616

Question 2

게임이 400개 이상 출시된 플랫폼들을 추출하여 각 플랫폼의 User_Score 평균값을 구하여 데이터프레임을 만들고 값을 내림차순으로 정리하여 출력하라

Hide code cell source
over_platfromName = df.Platform.value_counts()[df.Platform.value_counts()>=400].index

Ans= df.loc[df.Platform.isin(over_platfromName)].groupby('Platform')['User_Score'].mean().sort_values(ascending=False).to_frame()
print(Ans)
          User_Score
Platform            
PS2         7.664386
XB          7.540708
PC          7.060369
DS          7.047198
Wii         6.903758
PS3         6.782705
X360        6.780769

Question 3

게임 이름에 Mario가 들어가는 게임을 3회 개발한 개발자(Developer컬럼)을 구하여라

Hide code cell source
target = df[df.Name.str.contains('Mario')].Developer.value_counts()
Ans = list(target[target==3].index)
print(Ans)
['Nintendo, Nintendo Software Technology', 'Nintendo, Nd Cube']

Question 4

PS2 플랫폼으로 출시된 게임들의 User_Score의 첨도를 구하여라

Hide code cell source
Ans = df[df.Platform=='PS2'].User_Score.kurtosis()
Ans
2.4920035946875965

Question 5

각 게임별 NA_Sales,EU_Sales,JP_Sales,Other_Sales 값의 합은 Global_Sales와 동일해야한다. 소숫점 2자리 이하의 생략으로 둘의 값의 다른경우가 존재하는데, 이러한 케이스가 몇개 있는지 확인하라

Hide code cell source
# 일반적으로 boolen 타입의 True는 1로 인식하기에 전체 합을 구한다.
Ans = (df[['NA_Sales','EU_Sales','JP_Sales','Other_Sales']].sum(axis=1) != df['Global_Sales']).sum()
Ans
3636

Question 6

User_Count컬럼의 값이 120 이상인 게임들 중에서 User_Score의 값이 9.0이상인 게임의 수를 구하여라

Hide code cell source
Ans = len(df[(df.User_Count >=120) & (df.User_Score >=9.0)])
Ans
86

Question 7

Global_Sales컬럼의 값들을 robust스케일을 진행하고 40이상인 데이터 수를 구하여라

Hide code cell source
from  sklearn.preprocessing import RobustScaler

rb = RobustScaler()

rb_fit = rb.fit_transform(df.Global_Sales.values.reshape(-1,1))

Ans = len(rb_fit[rb_fit>40])
Ans
6