Cara mengurutkan dataframe pandas berdasarkan tanggal (dengan contoh)
Seringkali Anda mungkin ingin mengurutkan pandas DataFrame berdasarkan kolom yang berisi tanggal. Untungnya, hal ini mudah dilakukan dengan menggunakan fungsi sort_values() .
Tutorial ini menunjukkan beberapa contoh penggunaan praktis fungsi ini.
Contoh 1: Urutkan berdasarkan kolom tanggal
Misalkan kita memiliki panda DataFrame berikut:
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
Pertama, kita perlu menggunakan fungsi to_datetime() untuk mengubah kolom ‘date’ menjadi objek datetime:
df[' date '] = pd. to_datetime (df[' date '])
Selanjutnya, kita dapat mengurutkan DataFrame berdasarkan kolom ‘tanggal’ menggunakan fungsi sort_values() :
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
Secara default, fungsi ini mengurutkan tanggal dalam urutan menaik. Namun, Anda dapat menentukan ascending=False untuk mengurutkan dalam urutan menurun:
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
Contoh 2: urutkan berdasarkan beberapa kolom tanggal
Misalkan kita memiliki panda DataFrame berikut:
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
Kita dapat menggunakan fungsi sort_values untuk mengurutkan DataFrame pada beberapa kolom hanya dengan memberikan beberapa nama kolom ke fungsi tersebut:
#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 sekarang diurutkan dalam urutan menaik berdasarkan tanggal_pesanan, kemudian dalam urutan menaik berdasarkan tanggal_penerimaan.
Sumber daya tambahan
Cara memfilter baris Pandas DataFrame berdasarkan tanggal
Bagaimana cara mengonversi DateTime ke tanggal di Pandas
Cara mengonversi kolom menjadi DateTime di Pandas
Cara mengurutkan berdasarkan indeks dan kolom di Pandas