Python/Pandas

[Pandas] 데이터 정렬 - sort_values(), sort_index(), rank()

죵욜이 2024. 12. 16. 02:53

 sort_values()  를 사용한 데이터 정렬

  • 값을 기준으로 정렬할 때 사용
import pandas as pd

# 예시 데이터프레임
df = pd.DataFrame({
    'A': [3, 1, 4, 2],
    'B': [30, 10, 40, 20]
})

# 'A' 열을 기준으로 오름차순 정렬
sorted_df = df.sort_values(by='A', ascending=True)
print(sorted_df)
# 출력
   A   B
1  1  10
3  2  20
0  3  30
2  4  40
  •  ascending=True  는 생략가능하며 기본값이 True 
  • 내림차순은  False 

 sort_index()  를 사용한 인덱스 정렬

  • 인덱스 기준으로 데이터프레임을 정렬할 때 사용
# 인덱스를 기준으로 오름차순 정렬
df_sorted_by_index = df.sort_index(ascending=True)
print(df_sorted_by_index)
# 출력
   A   B
0  3  30
1  1  10
2  4  40
3  2  20
  •  ascending=True  는 생략가능하며 기본값이 True 
  • 내림차순은  False 

여러 열 기준으로 정렬

  •  by  에 리스트를 전달하면 여러 열을 기준으로 정렬 가능
# 'A' 열 기준 오름차순, 'B' 열 기준 내림차순 정렬
sorted_df_multi = df.sort_values(by=['A', 'B'], ascending=[True, False])
print(sorted_df_multi)
# 출력
   A   B
1  1  10
3  2  20
0  3  30
2  4  40

행 또는 열 기준으로 정렬

  •  axis=0  : 행 기준(row)
  •  axis=1  : 열 기준(column)
# 열 기준으로 인덱스 정렬
df_sorted_by_index_axis1 = df.sort_index(axis=1, ascending=True)
print(df_sorted_by_index_axis1)
# 출력
   A   B
0  3  30
1  1  10
2  4  40
3  2  20

 rank()  를 사용한 순위 정렬

  • 값에 순위를 부여하는 함수
  • 정렬과 유사한 기능을 함
df['Rank'] = df['A'].rank(ascending=True)
print(df)
# 출력
   A   B  Rank
0  3  30   3.0
1  1  10   1.0
2  4  40   4.0
3  2  20   2.0

 

동일 값에 순위 처리 방법

  • method 파라미터를 사용하여 설정
    • average
    • min
    • max
    • first
    • dense
# 동일 값에 대해 평균 순위 부여
df['Rank_avg'] = df['A'].rank(method='average')
print(df)
# 출력
   A   B  Rank  Rank_avg
0  3  30   3.0       3.0
1  1  10   1.0       1.0
2  4  40   4.0       4.0
3  2  20   2.0       2.0

'Python > Pandas' 카테고리의 다른 글

[Pandas] 그룹화 및 집계함수  (1) 2024.12.16
[Pandas] 데이터 병합 - merge(), concat(), join()  (1) 2024.12.16
[Pandas] 타입 변환 - astype()  (1) 2024.12.16
[Pandas] 필터링  (0) 2024.12.16
[Pandas] 데이터 접근 (at, loc)  (0) 2024.12.16