빅데이터분석기사

[빅데이터분석기사] 작업형 1유형 연습문제 #3

EveningPrimrose 2023. 6. 1. 01:36
반응형

데이터 출처(월드컵 출전선수 골기록 데이터) : https://www.kaggle.com/darinhawley/fifa-world-cup-goalscorers-19302018

 

FIFA World Cup Goalscorers 1930-2018

List of all FIFA World Cup goalscoreres 1930-2018

www.kaggle.com

 

데이터 URL : https://raw.githubusercontent.com/Datamanim/datarepo/main/worldcup/worldcupgoals.csv

 

import pandas as pd

df = pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/main/worldcup/worldcupgoals.csv')
df.head()

 

주어진 전체 기간동안 각 나라별 골 득점 수 상위 5개 국가와 그 득점수를 데이터프레임 형태로 출력하라.

result = df.groupby('Country').sum().sort_values('Goals', ascending=False).head(5)
display(result)

 

주어진 전체 기간동안 골 득점을 한 선수가 가장 많은 나라 상위 5개 국가와 그 선수 숫자를 데이터프레임 형식으로 출력하라.

result = df.groupby('Country').size().sort_values(ascending=False).head(5)
print(result)

 

Years 컬럼은 연도-연도 형식으로 구성되어있고, 각 연도는 4자리 숫자이다. 연도 표기가 4자리 숫자로 안된 케이스가 존재하는데, 해당 건은 몇 건인지 출력하라.

df['yearLst'] = df.Years.str.split('-')

def checkFour(x):
	for value in x:
    	if len(str(value)) != 4:
        	return False
    return True

df['check'] = df['yearLst'].apply(checkFour)

result = len(df[df.check == False])
result

 

위 문제에서 발생한 예외 케이스를 제외한 데이터프레임을 df2라고 정의하고, 데이터 행의 숫자를 출력하라.

df2 = df[df.check == True].reset_index(drop=True)
print(df2.shape[0])

 

월드컵 출전횟수를 나타내는 'LenCup' 컬럼을 추가하고 4회 출전한 선수의 숫자를 구하여라

df['LenCup'] = df['yearLst'].str.len()
result = df2['LenCup'].value_counts()[4]
print(result)

 

Yugoslavia 국가의 월드컵 출전횟수가 2회인 선수들의 숫자를 구하여라

result = len(df[(df.LenCup == 2) & (df2.Country == 'Yufoslavia')])
print(result)

 

2002년도에 출전한 전체 선수는 몇명인가?

result = len(df[df.Years.str.contains('2002')])
print(result)

 

이름에 'carlos' 단어가 들어가는 선수의 숫자는 몇 명인가? (대, 소문자 구분 X)

result = len(df[df.Player.str.lower().str.contains('carlos')])
print(result)

 

월드컵 출전 횟수가 1회뿐인 선수들 중에서 가장 많은 득점을 올렸던 선수는 누구인가?

result = df[df.LenCup == 1].sort_values('Goals', ascending=False).Player.values[0]
print(result)

 

월드컵 출전 횟수가 1회뿐인 선수들이 가장 많은 국가는 어디인가?

result = df[df.LenCup == 1].Country.value_counts().index[0]
print(result)

 

출처 : https://www.datamanim.com/dataset/03_dataq/typeone.html#id4

 

반응형