Python/Python For Analytics

[Python] pandas rank를 이용한 순위 표시

Pydole 2019. 10. 28. 21:04

rank : Series나 DataFrame의 값의 순위를 표시

 


Sample Dataframe 만들기

 

import pandas as pd

lst_names = ['철수','영희','민수', '민아', '영석', '석희', '희순', '영철']
lst_lang = [80,90,95,100,100,95,75,80]
lst_math = [70,85,90,95,75,80,90,85]
lst_eng = [80,85,80,100,95,90,85,90]

df = pd.DataFrame([ x for x in zip(lst_names,lst_lang,lst_math,lst_eng)],
                  columns=['이름','국어','수학','영어'])
df

 

 

국어, 수학, 영어의 총점을 구하기

 

df['총점'] = df['국어'] + df['수학'] + df['영어']
df

 

 

총점을 기준으로 rank 순위 매기기. (고득점이 1이 되야 하기 때문에 내림차순으로 정렬)

 

df['순위'] = df['총점'].rank(ascending=False)   # ascending=False : 내림차순
df

 

 

 

순위를 정수형으로 변경하고, 순위에 의한 정렬

 

df['순위'] = df['순위'].astype(int)
df.sort_values(by='순위')