반응형
Notice
Recent Posts
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Today
Total
관리 메뉴

오식랜드

[python] pandas 데이터 정렬 본문

dev-log/python

[python] pandas 데이터 정렬

개발하는 오식이 2023. 1. 17. 18:32
반응형

출처 : 나도코딩 https://www.youtube.com/watch?v=PjhlUzp_cU0&t=10533 

 

 

import pandas as pd

# excel 파일 열기
df = pd.read_excel('score.xlsx', index_col='지원번호')

오름차순

  • sort_values()

키 순서 오름차순으로 정렬해보자

print(df.sort_values('키'))
이름   학교    키   국어   영어   수학  과학  사회        SW특기
지원번호
3번    송태섭  북산고  168   80   75   70  80  75  Javascript
2번    정대만  북산고  184   40   35   50  55  25        Java
4번    서태웅  북산고  187   40   60   70  75  80         NaN
5번    강백호  북산고  188   15   20   10  35  10         NaN
7번    황태산  능남고  188   55   65   45  40  35      PYTHON
8번    윤대협  능남고  190  100   85   90  95  95          C#
1번    채치수  북산고  197   90   85  100  95  85      Python
6번    변덕규  능남고  202   80  100   95  85  80           C

내림차순

  • sort_values( , ascending=False)

키 순서 내림차순으로 정렬해보자

print(df.sort_values('키', ascending=False))

복합으로 사용하기

수학, 영어 점수로 내림차순을 만들어보자

print(df.sort_values(['수학', '영어'], ascending=False))
       이름    학교    키   국어 영어 수학 과학 사회        SW특기
지원번호
1번    채치수  북산고  197   90   85  100  95  85      Python
6번    변덕규  능남고  202   80  100   95  85  80           C
8번    윤대협  능남고  190  100   85   90  95  95          C#
3번    송태섭  북산고  168   80   75   70  80  75  Javascript
4번    서태웅  북산고  187   40   60   70  75  80         NaN
2번    정대만  북산고  184   40   35   50  55  25        Java
7번    황태산  능남고  188   55   65   45  40  35      PYTHON
5번    강백호  북산고  188   15   20   10  35  10         NaN

처음엔 수학 점수로 내림차순을 한 뒤, 동점자가 있으면 영어 점수로 정렬이 된다.

복합으로 사용하기 (오름차순, 내림차순 변경)

수학점수는 내림차순, 영어점수는 오름차순으로 정렬하고 싶을 땐 ascending에 값을 list로 넣어주면 된다.

print(df.sort_values(['수학', '영어'], ascending=[False, True]))
       이름    학교    키   국어 영어 수학 과학 사회        SW특기
지원번호
1번    채치수  북산고  197   90   85  100  95  85      Python
6번    변덕규  능남고  202   80  100   95  85  80           C
8번    윤대협  능남고  190  100   85   90  95  95          C#
4번    서태웅  북산고  187   40   60   70  75  80         NaN
3번    송태섭  북산고  168   80   75   70  80  75  Javascript
2번    정대만  북산고  184   40   35   50  55  25        Java
7번    황태산  능남고  188   55   65   45  40  35      PYTHON
5번    강백호  북산고  188   15   20   10  35  10         NaN

이렇게 하면 영어점수가 동점일 떄, 수학 점수가 더 낮은 사람이 더 위로 정렬이 된다

하나의 col을 가지고 정렬하기

  • 오름차순
print(df['키'].sort_values())
지원번호
3번    168
2번    184
4번    187
5번    188
7번    188
8번    190
1번    197
6번    202
Name: 키, dtype: int64
  • 내림차순
print(df['키'].sort_values(ascending=False))
지원번호
6번    202
1번    197
8번    190
5번    188
7번    188
4번    187
2번    184
3번    168
Name: 키, dtype: int64

index 순

  • 오름차순
print(df.sort_index())
  • 내림차순
print(df.sort_index(ascending=False))
반응형
Comments