반응형

데이터과학에서 python을 도구로 사용할 시 pandas, numpy 등의 라이브러리를 떨어질 수 없는 관계이다. 해당 연습을 위해 DataMinim 님의 데이터를 활용하여 연습하고, 결과를 공유하려 한다.
작업 1유형 — DataManim
Question 15 각 비디오는 10분 간격으로 구독자수, 좋아요, 싫어요수, 댓글수가 수집된것으로 알려졌다. 공범 EP1의 비디오정보 데이터중 수집간격이 5분 이하, 20분이상인 데이터 구간( 해당 시점 전,
www.datamanim.com
데이터 다운받기
사용하는 데이터는 DataMinim 님이 정제해둔 데이터이다. 아래와 같이 다운로드 한다.
import pandas as pd
df= pd.read_csv('https://raw.githubusercontent.com/Datamanim/datarepo/main/worldcup/worldcupgoals.csv')
df.head()

문제 1. 주어진 전체 기간의 각 나라별 골득점수 상위 5개 국가와 그 득점수를 데이터프레임형태로 출력하라
df_sub = df.groupby('Country').sum().sort_values('Goals', ascending=False)
df_sub.head(5)

문제 2. 주어진 전체기간동안 골득점을 한 선수가 가장 많은 나라 상위 5개 국가와 그 선수 숫자를 데이터 프레임 형식으로 출력하라
df_sub = df.groupby(['Country']).size().sort_values(ascending=False).head(5)
df_sub
Country
Brazil 81
Germany 78
Italy 60
Argentina 59
France 58
dtype: int64
문제 3. Years 컬럼은 년도 -년도 형식으로 구성되어있고, 각 년도는 4자리 숫자이다. 년도 표기가 4자리 숫자로 안된 케이스가 존재한다. 해당 건은 몇건인지 출력하라
df_years = df.Years.str.split('-')
def check_num(x):
for n in x:
if len(str(n)) != 4:
return False
return True
(df_years.apply(check_num) == False).sum()
답 : 45
문제 4. Q3에서 발생한 예외 케이스를 제외한 데이터프레임을 df2라고 정의하고 데이터의 행의 숫자를 출력하라 (아래 문제부터는 df2로 풀이하겠습니다)
df_years = df.Years.str.split('-')
def check_num(x):
for n in x:
if len(str(n)) != 4:
return False
return True
df['check_years'] = df_years.apply(check_num)
df2 = df[df.check_years == True].reset_index(drop=True)
df2.shape[0]
답 : 1250
문제 5. 월드컵 출전횟수를 나타내는 ‘LenCup’ 컬럼을 추가하고 4회 출전한 선수의 숫자를 구하여라.
df2['PlayerYears'] = df2.Years.str.split('-')
df2['LenCup'] = df2.PlayerYears.apply(lambda x : len(x))
df2[df2.LenCup == 4].shape[0]
문제 6. Yugoslavia 국가의 월드컵 출전횟수가 2회인 선수들의 숫자를 구하여라
len((df2.LenCup == 2) & (df2.Country == 'Yugoslavia'))
문제 7. 2002년도에 출전한 전체 선수는 몇명인가?
df2.PlayerYears.apply(lambda x : True if '2002' in x else False).sum()
또는
len(df2[df2.Years.str.contains('2002')])
반응형
'AI > Data Science' 카테고리의 다른 글
정규화는 데이터 분리 전? 후? 언제 해야할까? (0) | 2023.03.12 |
---|---|
[Data Science] 서울시 따릉이 이용정보 데이터 (0) | 2023.02.07 |
[Data Science] 유튜브 공범컨텐츠 동영상 데이터 분석하기 (1) | 2023.01.19 |
[Data Science] 유튜브 인기 동영상 분석하기 (0) | 2023.01.17 |
[데이터 과학] 확률분포 (이산형, 연속형) (0) | 2023.01.17 |