정렬 (sort)


1
import pandas as pd
1
df = pd.read_csv('korean-idol.csv')
1
df
이름 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
5 정국 방탄소년단 빅히트 남자 1997-09-01 178.0 A 5208335
6 민현 뉴이스트 플레디스 남자 1995-08-09 182.3 O 4989792
7 소연 아이들 큐브 여자 1998-08-26 NaN B 4668615
8 방탄소년단 빅히트 남자 1992-12-04 179.2 O 4570308
9 하성운 핫샷 스타크루이엔티 남자 1994-03-22 167.1 A 4036489
10 태연 소녀시대 SM 여자 1989-03-09 NaN A 3918661
11 차은우 아스트로 판타지오 남자 1997-03-30 183.0 B 3506027
12 백호 뉴이스트 플레디스 남자 1995-07-21 175.0 AB 3301654
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442


1. index 순으로 정렬

오름차순 정렬: df_name.sort_index() (default)
내림차순 정렬: df_name.sort_index(ascending = False)

1
df.sort_index()  # 오름차순
name 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
5 정국 방탄소년단 빅히트 남자 1997-09-01 178.0 A 5208335
6 민현 뉴이스트 플레디스 남자 1995-08-09 182.3 O 4989792
7 소연 아이들 큐브 여자 1998-08-26 NaN B 4668615
8 방탄소년단 빅히트 남자 1992-12-04 179.2 O 4570308
9 하성운 핫샷 스타크루이엔티 남자 1994-03-22 167.1 A 4036489
10 태연 소녀시대 SM 여자 1989-03-09 NaN A 3918661
11 차은우 아스트로 판타지오 남자 1997-03-30 183.0 B 3506027
12 백호 뉴이스트 플레디스 남자 1995-07-21 175.0 AB 3301654
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442

1
df.sort_index(ascending = False)  # 내림차순
name 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
12 백호 뉴이스트 플레디스 남자 1995-07-21 175.0 AB 3301654
11 차은우 아스트로 판타지오 남자 1997-03-30 183.0 B 3506027
10 태연 소녀시대 SM 여자 1989-03-09 NaN A 3918661
9 하성운 핫샷 스타크루이엔티 남자 1994-03-22 167.1 A 4036489
8 방탄소년단 빅히트 남자 1992-12-04 179.2 O 4570308
7 소연 아이들 큐브 여자 1998-08-26 NaN B 4668615
6 민현 뉴이스트 플레디스 남자 1995-08-09 182.3 O 4989792
5 정국 방탄소년단 빅히트 남자 1997-09-01 178.0 A 5208335
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260


2. column의 value순으로 정렬

오름차순 정렬: df_name.sort_values(by = ‘col_name’)
내림차순 정렬: df_name.sort_values(by = ‘col_name’, ascending = False)

2-1. 단일 column 기준

1
df.sort_values(by='키')  # 오름차순
name 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
9 하성운 핫샷 스타크루이엔티 남자 1994-03-22 167.1 A 4036489
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442
12 백호 뉴이스트 플레디스 남자 1995-07-21 175.0 AB 3301654
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
5 정국 방탄소년단 빅히트 남자 1997-09-01 178.0 A 5208335
8 방탄소년단 빅히트 남자 1992-12-04 179.2 O 4570308
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
6 민현 뉴이스트 플레디스 남자 1995-08-09 182.3 O 4989792
11 차은우 아스트로 판타지오 남자 1997-03-30 183.0 B 3506027
7 소연 아이들 큐브 여자 1998-08-26 NaN B 4668615
10 태연 소녀시대 SM 여자 1989-03-09 NaN A 3918661

1
df.sort_values(by = '키', ascending = False)
name 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
11 차은우 아스트로 판타지오 남자 1997-03-30 183.0 B 3506027
6 민현 뉴이스트 플레디스 남자 1995-08-09 182.3 O 4989792
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
8 방탄소년단 빅히트 남자 1992-12-04 179.2 O 4570308
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
5 정국 방탄소년단 빅히트 남자 1997-09-01 178.0 A 5208335
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
12 백호 뉴이스트 플레디스 남자 1995-07-21 175.0 AB 3301654
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
9 하성운 핫샷 스타크루이엔티 남자 1994-03-22 167.1 A 4036489
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
7 소연 아이들 큐브 여자 1998-08-26 NaN B 4668615
10 태연 소녀시대 SM 여자 1989-03-09 NaN A 3918661

2-2. 복수 column 기준

먼저 column1 기준으로 정렬하고, column1 값이 동일한 row들은 column2기준으로 정렬:

  • df_name .sort_value ( by = [ ‘col_name 1’ , ‘col_name 2’ ] )
1
df.sort_values(by = ['키', '브랜드평판지수'])
name 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
9 하성운 핫샷 스타크루이엔티 남자 1994-03-22 167.1 A 4036489
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442
12 백호 뉴이스트 플레디스 남자 1995-07-21 175.0 AB 3301654
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
5 정국 방탄소년단 빅히트 남자 1997-09-01 178.0 A 5208335
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
8 방탄소년단 빅히트 남자 1992-12-04 179.2 O 4570308
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
6 민현 뉴이스트 플레디스 남자 1995-08-09 182.3 O 4989792
11 차은우 아스트로 판타지오 남자 1997-03-30 183.0 B 3506027
10 태연 소녀시대 SM 여자 1989-03-09 NaN A 3918661
7 소연 아이들 큐브 여자 1998-08-26 NaN B 4668615

1
df.sort_values(by = ['키', '브랜드평판지수'], ascending = False)
name 그룹 소속사 성별 생년월일 혈액형 브랜드평판지수
11 차은우 아스트로 판타지오 남자 1997-03-30 183.0 B 3506027
6 민현 뉴이스트 플레디스 남자 1995-08-09 182.3 O 4989792
2 강다니엘 NaN 커넥트 남자 1996-12-10 180.0 A 8273745
8 방탄소년단 빅히트 남자 1992-12-04 179.2 O 4570308
3 방탄소년단 빅히트 남자 1995-12-30 178.0 AB 8073501
5 정국 방탄소년단 빅히트 남자 1997-09-01 178.0 A 5208335
1 지드래곤 빅뱅 YG 남자 1988-08-18 177.0 A 9916947
13 JR 뉴이스트 플레디스 남자 1995-06-08 176.0 O 3274137
12 백호 뉴이스트 플레디스 남자 1995-07-21 175.0 AB 3301654
14 슈가 방탄소년단 빅히트 남자 1993-03-09 174.0 O 2925442
0 지민 방탄소년단 빅히트 남자 1995-10-13 173.6 A 10523260
9 하성운 핫샷 스타크루이엔티 남자 1994-03-22 167.1 A 4036489
4 화사 마마무 RBW 여자 1995-07-23 162.1 A 7650928
7 소연 아이들 큐브 여자 1998-08-26 NaN B 4668615
10 태연 소녀시대 SM 여자 1989-03-09 NaN A 3918661