프로젝트/Riot LoL

Position 순서를 맞춰보자

SigmoidFunction 2021. 9. 6. 16:13
728x90

대부분 게임 position은 1,2,3,4,5 순서대로 탑, 정글, 미드, 원딜, 서폿 순서로 정해진다. 그렇지만 실제 인게임에서는 라인을 스왑하는 경우도 생기고 다양한 변수들이 존재한다. 현재 포지션 정보도 변수로 정해둔 이상 순서도 맞춰주는 것이 맞는 방법이라고 생각하였다. 

 

1,2,3,4,5를 맞추는 방법은 의외로 간단하다.

 

간단한 코테같달까?

 

import pandas as pd
import csv
import json
import pprint as pp

a = pd.read_csv("TeamCombination_position.csv")

f = open('210901lane_test.csv', 'a', encoding='utf-8', newline='')
wr = csv.writer(f)
wr.writerow(['win_champ', 'lose_champ', 'win_tags', 'lose_tags'])
for i in range(len(a)):
    b = json.loads(a.loc[i]['Win'])
    c = json.loads(a.loc[i]['Win_Position'])
    d = json.loads(a.loc[i]['Lose'])
    e = json.loads(a.loc[i]['Lose_Position'])
    c, b = zip(*sorted(zip(c, b)))
    e, d = zip(*sorted(zip(e, d)))
    csv_result = {'win': list(b), 'lose': list(d),
                  'win_tags': list(c), 'lose_tags': list(e)}
    wr.writerow([list(b), list(d), list(c), list(e)])

일전에 만들어 두었던 포지션과 챔프조합 파일에서 각 columns를 추출한 다음 묶어서 오름차순 정리를 해준다.

 

묶는 건 zip! 포지션을 기준으로 sort할 것이기때문에 c를 앞에 두었다. 

 

* : 호출시 전달하는 값들을 튜플로 생성해 담아준다.

 

그래서 묶어서 sorted를 하는 것이다~

 

그렇게 완성된 파일은

 

Before)46번에 순서가 빗나간 모습

 

After) 포지션정보가 모두 잘 정돈되었다.

 

 

이제 이 정보들을 직접 만든 tag와 연결시켜주면 된다.

728x90