데이터 프레임 정렬하기

Namung's Sea·2021년 11월 24일
0

NIPA AI 온라인 교육

목록 보기
13/18
post-thumbnail

Index 값 기준으로 정렬하기

  • 구성 : sort_index(행 or 열 방향, 오름 or 내림차순)

  • axis = 0 : 행 인덱스 기준 정렬(Default: 오름차순)
    df = df.sort_index(axis = 0)
    원본
    결과값

  • axis = 1 : 열 인덱스 기준 내림차순 정렬
    df.sort_index(axis = 1, ascending = False)
    원본
    결과값

Column 값 기준으로 정렬하기

  • 구성 : sort_values(컬럼 이름, 오름 or 내림차순)

  • col1 컬럼 기준 정렬(Default 오름차순)
    df.sort_values('col1', ascending = True)
    원본
    결과값

  • col1 컬럼 기준 내림차순 정렬
    df.sort_values('col1', ascending = False)
    원본
    결과값

  • col2 컬럼 기준 오름차순 정렬 후 col1 컬럼 기준 내림차순 정렬
    df.sort_value(['col2','col1'], ascending = [True, False])
    원본
    중간 과정
    결과값

결과값에서 col2 오름차순 정렬을 방해하지 않고 col1 내림차순 정렬을 하게 됨.
즉, col1 오름차순 정렬을 하게 되면 co2 A 값 내에서 co1 1, 2 순으로 정렬됨.

[실습 1] 데이터프레임 정렬하기

문제

데이터 프레임에 입력되어 있는 값을 오름차순, 내림차순으로 정렬해 봅시다.

  1. 데이터 프레임을 col1을 기준으로 오름차순 정렬한 결과를 sorted_df1에 저장하고 출력해주세요.
  2. 데이터 프레임을 col2를 기준으로 내림차순 정렬한 결과를 sorted_df2에 저장하고 출력해주세요.
  3. 데이터 프레임을 col2를 기준으로 오름차순 정렬한 뒤, col1을 기준으로 내림차순정렬한 결과를 출력해봅시다. 즉, 2개의 정렬 기준을 두어야 합니다. 정렬한 결과를 sorted_df3에 저장하고 출력해주세요.
import numpy as np
import pandas as pd

print("DataFrame: ")
df = pd.DataFrame({
    'col1' : [2, 1, 9, 8, 7, 4],
    'col2' : ['A', 'A', 'B', np.nan, 'D', 'C'],
    'col3': [0, 1, 9, 4, 2, 3],
})
print(df, "\n")

code

# 정렬 코드 입력해보기    
# 1. col1을 기준으로 오름차순으로 정렬하기.
sorted_df1 = df.sort_values('col1', ascending = True)
print(sorted_df1)

2. col2를 기준으로 내림차순으로 정렬하기.

sorted_df2 = df.sort_values('col2', ascending = False)
print(sorted_df2)

3. col2를 기준으로 오름차순으로, col1를 기준으로 내림차순으로 정렬하기.

sorted_df3 = df.sort_values(['col2','col1'], ascending = [True, False])
print(sorted_df3)


## 실행 결과

DataFrame:
col1 col2 col3
0 2 A 0
1 1 A 1
2 9 B 9
3 8 NaN 4
4 7 D 2
5 4 C 3

col1 col2 col3
1 1 A 1
0 2 A 0
5 4 C 3
4 7 D 2
3 8 NaN 4
2 9 B 9
col1 col2 col3
4 7 D 2
5 4 C 3
2 9 B 9
0 2 A 0
1 1 A 1
3 8 NaN 4
col1 col2 col3
0 2 A 0
1 1 A 1
2 9 B 9
5 4 C 3
4 7 D 2
3 8 NaN 4

profile
개발자로 시작| 공부한 것을 기록합니다.

0개의 댓글