반응형
데이터 출처(유튜브 데일리 인기동영상) :
https://www.kaggle.com/rsrishav/youtube-trending-video-dataset?select=KR_youtube_trending_data.csv
데이터 URL : https://raw.githubusercontent.com/Datamanim/datarepo/main/youtube/youtube.csv
import pandas as pd
df = pd.read_csv("https://raw.githubusercontent.com/Datamanim/datarepo/main/youtube/youtube.csv)
df.head()
인기동영상 제작횟수가 많은 상위 10개명을 출력하라 (날짜기준, 중복포함)
answer = list(df.loc[df.channelId.isin(df.channelId.value_counts().head(10).index)].channelTitle.unique())
print(answer)
논란으로 인기동영상이 된 케이스를 확인하고 싶다. dislikes 수가 like 수보다 높은 동영상을 제작한 채널을 모두 출력하라
answer = list(df.loc[df.likes < df.dislikes].channelTitle.unique())
print(answer)
채널명을 바꾼 케이스가 있는지 확인하고 싶다. channelId의 경우 고유값이므로 이를 통해 채널명을 한번이라도 바꾼 채널의 갯수를 구하여라
change = df[['channelTitle', 'channelId']].drop_duplicates().channelId.value_counts()
target = change[change>1]
print(len(target))
일요일에 인기있었던 영상들 중 가장 많은 영상 종류(categoryId)는 무엇인가?
df['trending_date2'] = pd.to_datetime(df['trending_date2'])
answer = df.loc[df['trending_date2'].dt.day_name() == 'Sunday'].categoryId.value_counts().index[0]
print(answer)
각 요일별 인기 영상들의 categoryId는 각각 몇개씩인지 하나의 데이터프레임으로 표현하라
group = df.groupby([df['trending_date2'].dt.day_name(), 'categoryId'], as_index=False).size()
answer = group.pivot(index='categoryId'.columns='trending_date2')
display(answer)
댓글의 수로(comment_count) 영상 반응에 대한 판단을 할 수 있다. viewcount 대비 댓글수가 가장 높은 영상을 확인하라(view_count 값이 0인 경우는 제외한다)
target2 = df.loc[df.view_count!=0]
t = target2.copy()
t['ratio'] = (target2['commnet_count']/target2['view_count']).dropna()
result = t.sort_values(by='ratio', ascending=False).iloc[0].title
print(result)
댓글의 수로(commnet_count) 영상 반응에 대한 판단을 할 수 있다. viewcount 대비 댓글수가 가장 낮은 영상을 확인하라. (view_counts, ratio 값이 0인 경우는 제외한다.)
ratio = (df['comment_count'] / df['view_count']).dropna().sort_values()
ratio[ratio!=0].index[0]
result = df.iloc[ratio[ratio!=0].index[0]].title
print(result)
like 대비 dislike의 수가 가장 적은 영상은 무엇인가?(like, dislike 값이 0인 경우는 제외한다.)
target = df.loc[(df.likes != 0) & (df.dislikes != 0)]
num = (target['dislike'] / target['likes']).sort_values().index[0]
answer = df.iloc[num].title
print(answer)
가장 많은 트렌드 영상을 제작한 채널의 이름은 무엇인가? (날짜기준, 중복포함)
answer = df.loc[df.channelId == df.channelId.value_count().index[0]].channelTitle.unique()[0]
print(answer)
20회(20일) 이상 인기동영상 리스트에 포함된 동영상의 숫자는?
answer = (df[['title', 'channelId']].value_counts()>=20).sum()
print(answer)
출처 : https://www.datamanim.com/dataset/03_dataq/typeone.html#id4
반응형
'빅데이터분석기사 > 코드' 카테고리의 다른 글
[빅데이터분석기사] 작업형 2유형 연습문제 #1 (0) | 2023.06.12 |
---|---|
[빅데이터분석기사] 작업형 1유형 연습문제 #2 (0) | 2023.05.31 |
[빅데이터분석기사] 작업형 2유형 예시문제 풀이 (0) | 2023.05.25 |
[빅데이터분석기사] 작업형 1유형 예시문제 풀이 (0) | 2023.05.24 |
[빅데이터분석기사] 6회 실기시험부터 적용되는 작업형 3유형 풀이 (1) | 2023.05.23 |