Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬 Pandas sort_values()로 CSV 파일을 특정 열 기준으로 정렬하는 방법

CSV 파일을 하나의 열(컬럼)을 기준으로 정렬하려면 pandas의 sort_values() 메서드를 사용하면 됩니다. sort_values() 메서드에 정렬 기준으로 사용할 열 이름을 지정해 주기만 하면 됩니다.

1. CSV 파일 불러오기

먼저 read_csv()를 이용해 'SalesRecords.csv' 파일을 DataFrame으로 읽어옵니다.

dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesRecords.csv")

2. 단일 열 기준으로 정렬하기

'Car'(차량명) 열을 기준으로 오름차순 정렬하는 코드입니다.

dataFrame.sort_values("Car", axis=0, ascending=True, inplace=True, na_position='first')

이번에는 'Reg_Price'(등록 가격) 열을 기준으로 정렬해 보겠습니다.

dataFrame.sort_values("Reg_Price", axis=0, ascending=True, inplace=True, na_position='first')

여기서 사용된 주요 매개변수는 다음과 같습니다.

  • axis=0 : 행 방향(세로)으로 정렬합니다.
  • ascending=True : 오름차순으로 정렬합니다. 내림차순이 필요하면 False로 설정하세요.
  • inplace=True : 원본 DataFrame을 직접 수정합니다.
  • na_position='first' : 결측값(NaN)을 정렬 결과의 맨 앞에 배치합니다.

전체 예제 코드

아래는 위 과정을 모두 포함한 전체 코드입니다.

import pandas as pd

# 입력 CSV 파일을 DataFrame으로 읽기
dataFrame = pd.read_csv("C:\\Users\\amit_\\Desktop\\SalesRecords.csv")
print("\n입력 CSV 파일 = \n", dataFrame)

# Car 열 기준으로 정렬
dataFrame.sort_values("Car", axis=0, ascending=True, inplace=True, na_position='first')

print("\n정렬된 CSV 파일 (차량명 기준) = \n", dataFrame)

# Reg_Price 열 기준으로 정렬
dataFrame.sort_values("Reg_Price", axis=0, ascending=True, inplace=True, na_position='first')

print("\n정렬된 CSV 파일 (등록 가격 기준) = \n", dataFrame)

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

입력 CSV 파일 =
         Car   Date_of_Purchase   Reg_Price
0        BMW        10/10/2020        1000
1       Audi        10/12/2020         750
2      Lexus        10/17/2020        1250
3     Jaguar        10/16/2020        1500
4    Mustang        10/19/2020        1100
5 Lamborghini        10/22/2020        1000

정렬된 CSV 파일 (차량명 기준) =
         Car   Date_of_Purchase   Reg_Price
1       Audi        10/12/2020         750
0        BMW        10/10/2020        1000
3     Jaguar        10/16/2020        1500
5 Lamborghini        10/22/2020        1000
2      Lexus        10/17/2020        1250
4    Mustang        10/19/2020        1100

정렬된 CSV 파일 (등록 가격 기준) =
         Car   Date_of_Purchase   Reg_Price
1       Audi        10/12/2020         750
0        BMW        10/10/2020        1000
5 Lamborghini        10/22/2020        1000
4    Mustang        10/19/2020        1100
2      Lexus        10/17/2020        1250
3     Jaguar        10/16/2020        1500

마무리

이처럼 pandas의 sort_values() 메서드를 활용하면 CSV 데이터를 원하는 열 기준으로 손쉽게 정렬할 수 있습니다. 여러 열을 동시에 기준으로 정렬하고 싶다면 열 이름을 리스트 형태로 전달하면 되며, 각 열마다 서로 다른 정렬 순서도 ascending 매개변수에 리스트를 넣어 지정할 수 있습니다.