한 열의 값으로 Pandas DataFrame 을 정렬하는 방법

  1. Dataframe 정렬 순서-인수 ascending
  2. DataFrame 정렬 순서-인수 na_position

pandas.DataFrame.sort_values 메소드를 사용하여 dataframe값을 정렬하고 정렬 순서를 지정하는 ‘오름차순’과 정렬 된 결과에서 NaN의 위치를 ​​결정하는 na_position과 같은 옵션을 소개합니다.

다음의 ‘데이터 프레임’을 고려하십시오.

import pandas as pd
df = pd.DataFrame({
    'col1': ['g', 't', 'n', 'w', 'n', 'g'],
    'col2': [5, 2, 5, 1, 3, 6],
    'col3': [0, 7, 2, 8,1, 2],
})
print(df)

이 코드를 실행하면 아직 정렬되지 않은 다음과 같은 출력이 표시됩니다.

    col1  col2  col3
0    g     5     0
1    t     2     7
2    n     5     2
3    w     1     8
4    n     3     1
5    g     6     2

이제 아래 코드로 dataframe 을 정렬 할 수 있습니다.

import pandas as pd
df = pd.DataFrame({
    'col1': ['g', 't', 'n', 'w', 'n', 'g'],
    'col2': [5, 2, 5, 1, 3, 6],
    'col3': [0, 7, 2, 8,1, 2],
})
print(df.sort_values(by=['col1']))

dataframecol1 으로 정렬했습니다. 위의 코드를 실행하면 다음과 같은 결과가 나타납니다.

    col1  col2  col3
0    g     5     0
5    g     6     2
2    n     5     2
4    n     3     1
1    t     2     7
3    w     1     8

정렬을 위해 둘 이상의 열을 사용할 수 있습니다. 위 코드의 마지막 줄을 다음과 같이 변경하겠습니다.

print(df.sort_values(by=['col1','col2']))

코드를 실행하면 다음과 같은 결과가 나타납니다.

    col1  col2  col3
0    g     5     0
5    g     6     2
4    n     3     1
2    n     5     2
1    t     2     7
3    w     1     8

이제 dataframecol2 로 더 분류됩니다.

Dataframe 정렬 순서-인수 ascending

기본적으로 정렬은 오름차순으로, dataframe을 내림차순으로 변경하려면 플래그 ascending = false를 설정해야합니다.

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

코드를 실행하면 다음과 같은 결과가 나타납니다.

    col1  col2  col3
3    w     1     8
1    t     2     7
2    n     5     2
4    n     3     1
5    g     6     2
0    g     5     0

DataFrame 정렬 순서-인수 na_position

na_position 은 정렬 후 NaN 의 위치를 ​​지정합니다. 즉,lastNaN 을 끝에 놓습니다. 기본값은 정렬 된 결과의 시작 부분에 NaN 을 넣는 first 입니다.

다음의 ‘데이터 프레임’을 고려하십시오.

import numpy as np
import pandas as pd
s = pd.Series([np.nan, 2, 4, 10, 7])
print(s.sort_values(na_position='last'))

코드를 실행하면 다음과 같은 결과가 나타납니다.

1     2.0
2     4.0
4     7.0
3    10.0
0     NaN

관련 문장 - Pandas DataFrame

  • Pandas DataFrame에 한 행을 추가하는 방법
  • Pandas 에서 DataFrame 열을 Datetime 으로 변환하는 방법