Pandas: cara memilih baris dataframe berdasarkan stempel waktu


Anda dapat menggunakan sintaks dasar berikut untuk memilih baris di antara dua stempel waktu di pandas DataFrame:

 df[(df[' tstamp '] > ' 2022-10-25 04:30:00 ') & (df[' tstamp '] < ' 2022-10-27 11:00:00 ')]

Sintaks ini mengasumsikan bahwa tstamp sudah memiliki tipe datetime.

Jika tidak, Anda dapat menggunakan sintaks berikut untuk mengonversinya menjadi kolom datetime:

 df[' tstamp '] = pd. to_datetime (df[' tstamp '])

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: pilih baris Pandas DataFrame berdasarkan stempel waktu

Misalkan kita memiliki pandas DataFrame berikut yang berisi informasi tentang penjualan di toko ritel:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' tstamp ': ['2022-10-25 04:00:00', '2022-10-25 11:55:12',
                                 '2022-10-26 02:00:00', '2022-10-27 10:30:00',
                                 '2022-10-27 14:25:00', '2022-10-28 01:15:27'],
                   ' sales ': [18, 22, 19, 14, 14, 11]})

#view DataFrame
print (df)

                tstamp sales
0 2022-10-25 04:00:00 18
1 2022-10-25 11:55:12 22
2 2022-10-26 02:00:00 19
3 2022-10-27 10:30:00 14
4 2022-10-27 14:25:00 14
5 2022-10-28 01:15:27 11

Katakanlah kita hanya ingin memilih baris di antara dua stempel waktu berikut:

  • 25-10-2022 04:30:00
  • 27-10-2022 11:00:00

Kita dapat menggunakan sintaks berikut untuk melakukan ini:

 #convert timestamp column to datetime dtype
df[' tstamp '] = pd. to_datetime (df[' tstamp '])

#select rows between two timestamps
df[(df[' tstamp '] > ' 2022-10-25 04:30:00 ') & (df[' tstamp '] < ' 2022-10-27 11:00:00 ')]

	tstamp sales
1 2022-10-25 11:55:12 22
2 2022-10-26 02:00:00 19
3 2022-10-27 10:30:00 14

Perhatikan bahwa hanya garis antara dua stempel waktu yang kami tentukan yang dipilih.

Perhatikan juga bahwa Anda dapat memilih baris berdasarkan stempel waktu hanya dengan menggunakan nilai tanggal.

Misalnya, kita dapat menggunakan kode berikut untuk memilih semua baris dengan stempel waktu lebih besar dari 27-10-2022:

 #convert timestamp column to datetime dtype
df[' tstamp '] = pd. to_datetime (df[' tstamp '])

#select rows with timestamp after 2022-10-27
df[df[' tstamp '] > ' 2022-10-27 ']

	tstamp sales
3 2022-10-27 10:30:00 14
4 2022-10-27 14:25:00 14
5 2022-10-28 01:15:27 11

Perhatikan bahwa hanya baris yang nilainya di kolom tsamp lebih lambat dari 27-10-2022 yang dipilih.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:

Bagaimana cara mengonversi DateTime ke tanggal di Pandas
Cara mengonversi kolom menjadi DateTime di Pandas
Cara mengurutkan Pandas DataFrame berdasarkan tanggal

Tambahkan komentar

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