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에서 인덱스와 열을 모두 기준으로 정렬하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다