Top 15,000 Ranked Anime Dataset (Update to 3/2025)
Top 15,000 Ranked Anime Dataset (Update to 3/2025)
Dataset of top 15k ranked from MAL. Rich features for analysis & recommendations
www.kaggle.com
이번 분석에 사용된 데이터는 캐글에 공개된 마이애니리스트(MAL) 기반 애니메이션 정보 데이터셋입니다.
해당 데이터는 지칸 API v4의 /top/anime 엔드포인트를 통해 수집된 것으로, MAL 순위 기준 상위 15,000개의 애니메이션 정보를 포함하고 있습니다.
Jikan API는 MyAnimeList의 비공식 API이지만, 많은 개발자 및 연구자들이 활용하는 신뢰도 높은 데이터 제공 도구입니다. 이 데이터셋에는 각 애니메이션의 평점(score), 순위(rank), 인기(popularity), 장르(genres), 테마(themes), 대상 연령층(demographics), 제작사(studios), 줄거리(synopsis) 등 다양한 정보가 포함되어 있어 분석에 적합합니다.
이 데이터를 기반으로 애니메이션의 전반적인 특성 및 트렌드를 파악해보는 분석을 해보도록 하겠습니다
1. 열 목록 확인
df.info()
- anime_id: MyAnimeList(MAL ID)에 있는 애니메이션의 고유 식별자입니다.
- anime_url: MyAnimeList의 애니메이션 페이지에 대한 URL 링크입니다.
- image_url: 애니메이션의 기본 비주얼 또는 표지 이미지(JPEG 형식)의 URL입니다.
- name: 애니메이션의 공식 제목.
- english_name: 애니메이션의 공식 영어 제목입니다.
- japanese_names: 애니메이션의 공식 일본어 제목입니다(사용 가능한 경우).
- score: MyAnimeList에서 애니메이션의 평균 점수/등급(1에서 10까지, 높을수록 좋음).
- genres: 애니메이션과 관련된 쉼표로 구분된 장르 목록(예: 액션, 코미디, 판타지).
- themes: 애니메이션과 관련된 테마의 쉼표로 구분된 목록(예: 심리적, 시간 여행)
- demographics: 애니메이션의 대상 관객 (shounen, shoujo, seinen, josei)
- synopsis: 애니메이션에 대한 간략한 요약 또는 줄거리 설명입니다.
- type: 애니메이션의 유형(예: TV, 영화, OVA, ONA, 스페셜, 음악).
- episodes: 애니메이션 시리즈의 에피소드 수(TV 시리즈, OVA 등).
- premiered: 애니메이션이 초연된 계절 및 연도(예: "2013년 가을").
- producers: 애니메이션 제작에 참여한 제작사의 쉼표로 구분된 목록입니다.
- studios: 애니메이션의 애니메이션을 담당하는 애니메이션 스튜디오의 쉼표로 구분된 목록입니다.
- source: 애니메이션의 원본 소스 자료(예: 만화, 원작, 라이트 노벨, 게임).
- duration: 각 에피소드의 지속 시간(분)입니다(TV 시리즈, OVA 등의 경우).
- rating: 애니메이션의 연령 등급 또는 콘텐츠 등급(예: PG-13, R+, G).
- rank: 점수를 기준으로 한 애니메이션의 순위(순위가 낮을수록 좋음). 이 데이터 세트는 이 순위별로 상위 15,000개의 애니메이션에 초점을 맞춥니다.
- popularity: MyAnimeList에서 애니메이션의 인기 순위(낮은 순위가 더 인기가 있음).
- favorites: MyAnimeList에서 이 애니메이션을 즐겨찾기로 표시한 사용자 수입니다.
- scored_by: 애니메이션의 점수에 기여한 사용자 수입니다.
- members: 애니메이션의 MyAnimeList 커뮤니티의 구성원으로 나열된 사용자 수입니다.
2. 사람들이 많이 보는 장르 선호도 조사
df['genres'].value_counts()
그런데 장르가 2개이상으로 쉼표로 되어있는 것들이 포함되어있다.
곰곰히 생각해서 나온 결론은 맨 앞에 있는걸 대표 장르로 하여 통합시키자 라는 결론에 이르렀다
df['main_genre'] = df['genres'].str.split(', ').str[0]
새롭게 열을 생성하고보니 결측치가 발견되어 이건 그냥 기타로 분류하기로 했다
df['main_genre'] = df['main_genre'].fillna('Others')
df['main_genre'].isna().sum()
비율 계산
import matplotlib.pyplot as plt
# 상위 7개 장르 추출
top7_genres = genre_ratio.sort_values(ascending=False).head(7)
# 시각화
top7_genres.sort_values().plot(
kind='barh',
figsize=(8, 6),
title='Top 7 Anime Genres by Percentage'
)
plt.xlabel('Percentage (%)')
plt.ylabel('Genre')
plt.tight_layout()
plt.show()
3. 평점으로 보는 만화 순위
# source가 'Manga'인 애니메이션 필터링
manga_based = df[df['source'] == 'Manga']
# 순위(rank)가 있는 것만 정렬
manga_ranked = manga_based.dropna(subset=['rank']).sort_values('rank')
# 상위 10개 보기
top10_manga_adaptations = manga_ranked[['name', 'score', 'rank', 'popularity']].head(10)
print(top10_manga_adaptations)
🎬 인기 애니메이션 순위 & 정보
순위 | 애니메이션 제목 (한글) | 원제 (영문) | 평점 | 인기 순위 |
---|---|---|---|---|
1 | 장송의 프리렌 | Sousou no Frieren | 9.31 | 160 |
2 | 강철의 연금술사 BROTHERHOOD | Fullmetal Alchemist: Brotherhood | 9.10 | 3 |
5 | 진격의 거인 시즌 3 파트 2 | Shingeki no Kyojin Season 3 Part 2 | 9.05 | 21 |
6 | 은혼° | Gintama° | 9.05 | 344 |
7 | 은혼: 더 파이널 | Gintama: The Final | 9.04 | 1536 |
8 | 헌터×헌터 (2011) | Hunter x Hunter (2011) | 9.03 | 8 |
9 | 은혼' | Gintama' | 9.02 | 401 |
10 | 은혼': 연장전 | Gintama': Enchousen | 9.02 | 759 |
12 | 블리치: 천년혈전편 | Bleach: Sennen Kessen-hen | 9.00 | 374 |
13 | 카구야님은 고백받고 싶어: 울트라 로맨틱 | Kaguya-sama wa Kokurasetai: Ultra Romantic | 8.99 | 168 |
평점은 아무래도 새롭게 나온 인기만화가 순위를 차지하는것 같습니다
그래서 즐겨찾기로 누적되어있는 열이 있어 다시 알아보았습니다
4. 사람들이 좋아요 즐겨찾기 순위
top_favorites = df.sort_values('favorites', ascending=False).head(10)
top_favorites[['name', 'score', 'favorites', 'rank', 'popularity']]
순위 | 애니메이션 제목 | 평균 평점 | 즐겨찾기 수 | MAL 순위 | 인기 순위 |
---|---|---|---|---|---|
1 | One Piece | 8.73 | 234,344 | 51 | 17 |
2 | 강철의 연금술사: 브라더후드 | 9.10 | 231,928 | 2 | 3 |
3 | 헌터 x 헌터 (2011) | 9.03 | 218,449 | 8 | 8 |
4 | 슈타인즈 게이트 | 9.07 | 194,507 | 3 | 14 |
5 | 데스노트 | 8.62 | 178,500 | 89 | 2 |
6 | 진격의 거인 | 8.56 | 178,145 | 116 | 1 |
7 | 나루토: 질풍전 | 8.28 | 115,525 | 303 | 16 |
8 | 코드 기아스: 반역의 를르슈 | 8.70 | 111,695 | 61 | 22 |
9 | 신세기 에반게리온 | 8.36 | 110,742 | 230 | 45 |
10 | 주술회전 | 8.56 | 93,177 | 109 | 13 |
'데이터 분석 공부 기록' 카테고리의 다른 글
[kaggle] 넷플릭스 영화와 TV 프로그램 데이터분석 Netflix Movies and TV shows till 2025 (0) | 2025.03.27 |
---|---|
[kaggle] Tesla Stock Price Data 테슬라 주가 데이터 (2000-2025) (2) | 2025.03.26 |
[kaggle] 세계 식량 낭비 통계 데이터셋 Global Food Wastage Dataset (2) | 2025.03.24 |
[kaggle]캐나다 소득 조사 분석 The CIS (Canadian Income Survey) Dataset (0) | 2025.03.22 |
[kaggle] 전기 자동차 인구 데이터 데이터 분석 Analysis of Electric Vehicle Population Data (1) | 2025.03.21 |