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

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *