TFT(LOL) 데이터 분석

Suhyeon Lee·2024년 11월 1일
0

TFT(LOL) 기초분석 프로젝트

프로젝트 요청 사항

  • 게임 데이터를 탐색하여 서비스 현황 확인
  • 우리의 서비스가 앞으로 어떠한 방향으로 나아갈 지 확인

주제

  • TFT(LOL) 데이터에 대한 EDA 를 진행하고 결과를 도출

데이터 EDA(Exploratory Data Analysis; 탐색적 데이터 분석)

  1. 이상치/결측치 처리
  2. 시각화

🎲 필수 사항

  • 각 테이블에 대한 열과 행 개수를 표현
  • 각 테이블에 대한 컬럼타입과 통계량 출력
  • 테이블을 결합하여, 데이터 분석을 위한 하나의 데이터셋으로 만들기
    • 모든 테이블을 결합하지 않아도 됨
    • 테이블 결합 시 필요한 데이터에 따라 적절한 결합 방식을 판단하시고 사용(정답은 없음!)
  • NULL 값이 존재하는 경우, 대체 or 제거 모두 가능
  • 하나의 기준컬럼을 두고 집계함수를 사용하여 비교분석을 진행하고 이를 시각화
  • 최소 1개의 인사이트를 제시

🎲 선택 사항

  • 2개 이상의 기준을 두고 집계함수를 사용하여 비교분석을 진행
  • 필요한 경우 pivot table을 구현
  • 이상치 처리기법을 사용하고 해석
  • 조합을 영웅으로 분리하여 분석을 진행

기초 분석

사전 지식

  1. 한 게임에 풀리는 캐릭터 수는 코스트별로 상이

    • 시즌별로 조금씩 달라짐
    • 시즌 3(2020년 중반) 기준:
      • 1C(cost) → 29개
      • 2C(cost) → 22개
      • 3C(cost) → 18개
      • 4C(cost) → 12개
      • 5C(cost) → 10개
  2. 레벨별 코스트 확률(리롤 확률)

읽어두면 좋을 내용
TFT를 할 때 꼭 알아야 하지만 놓치는 부분 중 하나가 바로 코스트별 챔피언 기물 수입니다.
가끔 3성을 만들기 위해 리롤(reroll)을 하는데 100원을 써도 50원을 써도 챔피언이 안 보이는 경우가 있습니다. 이는 다른 사용자들이 챔피언을 다 뽑았기 때문에 더 이상 뽑지 못하는 겁니다.
따라서 각 코스트별로 챔비언이 얼마나 있는지(기물 수), 그리고 리롤 확률이 얼마인지 명심하고 있어야 합니다.

(1) 티어 1: 29개
1 코스트 챔피언의 가물은 총 29개입니다.
만약 3성을 만든다고 가정하면 9개의 챔피언이 필요하기 때문에 최대 3개까지 만들 수 있습니다.
다른 사용자를 스캔했을 때 3성이 3명이 떠 있다라고 보이면 바로 접으시는 게 맞고 만약 2명만 완성되어 있다고 하면 가능성이 있는 것입니다.
1 코스트 리롤덱이 아직 많이 사용되고 있는데 꼭 유의하셔서 리롤하시길 바랍니다.
(2) 티어 2: 22개
2 코스트 챔피언의 기물은 총 22개입니다.
3성을 만든다고 가정하면 최대 2개까지 만들 수 있습니다.
만약 다른 사용자들이 2 코스트 챔피언을 2개나 만들었다고 하면 아쉽지만 2성까짐나 사용하셔야 할 것 같습니다.
특히 메잠 조합(메카 파일러 - 잡입 조합 덱)을 갈 때 카이사의 경쟁이 치열할 텐데, 3명 이상 겹치면 리롤하지 말고 빠르게 레벨업을 해 케일을 뽑는 것을 추천드립니다.
(3) 티어 3

  1. 스테이지 당 라운드 정보
  • 스테이지 1을 제외하고는 모두 7개의 라운드로 구성
    • 이 중 라운드 1, 2, 3, 5, 6에서 다른 사람과 전투
  • 만약 라운드 38에서 게임이 종료되었다면 스테이지 6 라운드 6에서 최종 승부가 결정되었다는 의미임
  1. 플레이어 피해량 공식

  2. 경험치/골드

  3. 남은 인원이 홀수인 경우 한 유저의 덱이 두 명의 유저와 전투

  • 4등까지 정해지고 1-3등이 미정인 상황에서 1등과 2등이 전투 매칭이 되었다면 3등 유저는 1등 혹은 2등의 데이터와 대결하게 됨
    • 1등 vs 2등 / 3등 vs 1등 데이터일 경우
      • 1등의 체력은 실제 매칭된 2등과의 전투 결과로만 영향을 받음
      • 3등은 실제 1등과 전투한 것이 아니기에 데미지를 받지 않지만, 3등이 1등 데이터와의 전투에서 질 경우 데미지는 그대로(혹은 더 세게) 받음
  • 따라서 이럴 경우 1등이 강력하면 2등과 3등이 한번에 탈락하며 1,2,3등이 한 라운드에 결정될 수 있음
  1. 기타 시즌 3 정보

1. 데이터 확인

import pandas as pd 
import numpy as np
import time
from PIL import Image
import altair as alt
import seaborn as sns
import matplotlib.pyplot as plt 
import datapane as dp
# seaborn 팔레트 설정
palette = sns.color_palette("pastel")

# pandas 라이브러리를 활용한 csv 파일 읽기 
gm = pd.read_csv("TFT_GrandMaster_MatchData.csv")
champ = pd.read_csv("TFT_Champion_CurrentVersion.csv")
items = pd.read_csv("TFT_Item_CurrentVersion.csv")

테이블 확인

gm.head()

champ.head()

items.head()

결측치 확인

gm.isnull.sum()

champ.isnull.sum()

items.isnull.sum()

각 테이블에 대한 열과 행 개수 표현

  • .shape

각 테이블에 대한 컬럼타입과 통계량 출력

컬럼타입

  • .dtypes

  • .info

통계량

  • .describe()

CSV 데이터에 오타가 있음 → 파이썬으로 값 수정해보기
캐릭터 CSV 파일에서 에코 class가 'Infiltrato'라고 써져 있는데 정식 명칭은 'Infiltrator'임

2. 그래프 그리기

box plot


→ Ranked가 0인 값은 이상치로 처리해야 할까?

profile
2 B R 0 2 B

0개의 댓글

관련 채용 정보