Pandas dataframe을 날짜별로 정렬하는 방법(예제 포함)
날짜가 포함된 열을 기준으로 pandas DataFrame을 정렬하려는 경우가 종종 있습니다. 다행히 sort_values() 함수를 사용하면 이 작업을 쉽게 수행할 수 있습니다.
이 튜토리얼에서는 이 기능의 실제 사용에 대한 몇 가지 예를 보여줍니다.
예 1: 날짜 열 기준 정렬
다음과 같은 팬더 DataFrame이 있다고 가정합니다.
import pandas as pd #createDataFrame df = pd.DataFrame({'sales': [4, 11, 13, 9], 'customers': [2, 6, 9, 7], 'date': ['2020-01-25', '2020-01-18', '2020-01-22', '2020-01-21']}) #view DataFrame print (df) sales customers date 0 4 2 2020-01-25 1 11 6 2020-01-18 2 13 9 2020-01-22 3 9 7 2020-01-21
먼저 to_datetime() 함수를 사용하여 ‘date’ 열을 datetime 객체로 변환해야 합니다.
df[' date '] = pd. to_datetime (df[' date '])
다음으로, sort_values() 함수를 사용하여 ‘날짜’ 열을 기준으로 DataFrame을 정렬할 수 있습니다.
df. sort_values (by=' date ') sales customers date 1 11 6 2020-01-18 3 9 7 2020-01-21 2 13 9 2020-01-22 0 4 2 2020-01-25
기본적으로 이 함수는 날짜를 오름차순으로 정렬합니다. 하지만 오름차순=False를 지정하여 내림차순으로 정렬할 수 있습니다.
df. sort_values (by=' date ', ascending= False ) sales customers date 0 4 2 2020-01-25 2 13 9 2020-01-22 3 9 7 2020-01-21 1 11 6 2020-01-18
예 2: 여러 날짜 열을 기준으로 정렬
다음과 같은 팬더 DataFrame이 있다고 가정합니다.
import pandas as pd #createDataFrame df = pd.DataFrame({'person': ['A', 'B', 'C', 'D'], 'order_date': ['2020-01-15', '2020-01-15', '2020-01-20', '2020-01-20'], 'receive_date': ['2020-01-25', '2020-01-18', '2020-01-22', '2020-01-21']}) #view DataFrame print (df) person order_date receive_date 0 A 2020-01-15 2020-01-25 1 B 2020-01-15 2020-01-18 2 C 2020-01-20 2020-01-22 3 D 2020-01-20 2020-01-21
sort_values 함수를 사용하면 여러 열 이름을 함수에 제공하여 여러 열의 DataFrame을 정렬할 수 있습니다.
#convert both date columns to datetime objects df[['order_date','receive_date']] = df[['order_date','receive_date']]. apply (pd. to_datetime ) #sort DateFrame by order_date, then by receive_date df. sort_values (by=['order_date', 'receive_date']) person order_date receive_date 1 B 2020-01-15 2020-01-18 0 A 2020-01-15 2020-01-25 3 D 2020-01-20 2020-01-21 2 C 2020-01-20 2020-01-22
이제 DataFrame은 order_date를 기준으로 오름차순으로 정렬된 다음, receive_date를 기준으로 오름차순으로 정렬됩니다.
추가 리소스
Pandas DataFrame 행을 날짜별로 필터링하는 방법
Pandas에서 DateTime을 날짜로 변환하는 방법
Pandas에서 열을 DateTime으로 변환하는 방법
Pandas에서 인덱스와 열을 모두 기준으로 정렬하는 방법