데이터 분석 기초
12.데이터 정렬
세용용용용
2023. 3. 13. 23:43
12. 데이터 정렬¶
In [1]:
import pandas as pd
df = pd.read_csv('score.csv')
df
Out[1]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | SW특기 | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python |
| 1 | 정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java |
| 2 | 송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript |
| 3 | 서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | NaN |
| 4 | 강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 | NaN |
| 5 | 변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C |
| 6 | 황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON |
| 7 | 윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# |
In [2]:
df.sort_values('키') #키 컬럼 기준으로 오름차순 정렬
Out[2]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | SW특기 | |
|---|---|---|---|---|---|---|---|---|---|
| 2 | 송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript |
| 1 | 정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java |
| 3 | 서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | NaN |
| 4 | 강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 | NaN |
| 6 | 황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON |
| 7 | 윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# |
| 0 | 채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python |
| 5 | 변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C |
In [3]:
df.sort_values('키', ascending=False) #키 기준으로 내림차순 정렬
Out[3]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | SW특기 | |
|---|---|---|---|---|---|---|---|---|---|
| 5 | 변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C |
| 0 | 채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python |
| 7 | 윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# |
| 4 | 강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 | NaN |
| 6 | 황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON |
| 3 | 서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | NaN |
| 1 | 정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java |
| 2 | 송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript |
In [6]:
df.sort_values(['수학','영어'], ascending=False) #수학, 영어 컬럼 기준으로 내림차순 정렬
Out[6]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | SW특기 | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python |
| 5 | 변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C |
| 7 | 윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# |
| 2 | 송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript |
| 3 | 서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | NaN |
| 1 | 정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java |
| 6 | 황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON |
| 4 | 강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 | NaN |
In [9]:
df.sort_values(['수학','영어'],ascending=[True,False]) #수학 점수는 오름차순 영어 점수는 내림차순 정렬
Out[9]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | SW특기 | |
|---|---|---|---|---|---|---|---|---|---|
| 4 | 강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 | NaN |
| 6 | 황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON |
| 1 | 정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java |
| 2 | 송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript |
| 3 | 서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | NaN |
| 7 | 윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# |
| 5 | 변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C |
| 0 | 채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python |
하나의 데이터만 시리즈로도 볼수가 있음¶
In [10]:
df['키'].sort_values()
Out[10]:
2 168 1 184 3 187 4 188 6 188 7 190 0 197 5 202 Name: 키, dtype: int64
In [11]:
df['키'].sort_values(ascending=False)
Out[11]:
5 202 0 197 7 190 4 188 6 188 3 187 1 184 2 168 Name: 키, dtype: int64
index를 기준으로 정렬¶
In [12]:
df.sort_index()
Out[12]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | SW특기 | |
|---|---|---|---|---|---|---|---|---|---|
| 0 | 채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python |
| 1 | 정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java |
| 2 | 송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript |
| 3 | 서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | NaN |
| 4 | 강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 | NaN |
| 5 | 변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C |
| 6 | 황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON |
| 7 | 윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# |
In [13]:
df.sort_index(ascending = False)
Out[13]:
| 이름 | 학교 | 키 | 국어 | 영어 | 수학 | 과학 | 사회 | SW특기 | |
|---|---|---|---|---|---|---|---|---|---|
| 7 | 윤대협 | 능남고 | 190 | 100 | 85 | 90 | 95 | 95 | C# |
| 6 | 황태산 | 능남고 | 188 | 55 | 65 | 45 | 40 | 35 | PYTHON |
| 5 | 변덕규 | 능남고 | 202 | 80 | 100 | 95 | 85 | 80 | C |
| 4 | 강백호 | 북산고 | 188 | 15 | 20 | 10 | 35 | 10 | NaN |
| 3 | 서태웅 | 북산고 | 187 | 40 | 60 | 70 | 75 | 80 | NaN |
| 2 | 송태섭 | 북산고 | 168 | 80 | 75 | 70 | 80 | 75 | Javascript |
| 1 | 정대만 | 북산고 | 184 | 40 | 35 | 50 | 55 | 25 | Java |
| 0 | 채치수 | 북산고 | 197 | 90 | 85 | 100 | 95 | 85 | Python |