Cara mengelompokkan data berdasarkan waktu di pandas (dengan contoh)


Anda dapat menggunakan sintaks berikut untuk mengelompokkan data berdasarkan waktu dan melakukan agregasi di panda:

 df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()

Contoh khusus ini mengelompokkan nilai berdasarkan jam ke dalam kolom yang disebut Jam dan kemudian menghitung jumlah nilai di kolom Penjualan untuk setiap jam.

Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.

Contoh: mengelompokkan data berdasarkan waktu di Pandas

Katakanlah kita memiliki panda DataFrame berikut yang menunjukkan jumlah penjualan yang dilakukan pada waktu berbeda dalam sehari untuk sebuah toko:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' time ': ['2022-01-01 01:14:00', '2022-01-01 01:24:15',
                            '2022-01-01 02:52:19', '2022-01-01 02:54:00',
                            '2022-01-01 04:05:10', '2022-01-01 05:35:09'],
                   ' sales ': [18, 20, 15, 14, 10, 9]})

#convert date column to datetime
df[' time '] = pd. to_datetime (df[' time '])

#view DataFrame
print (df)

                 time sales
0 2022-01-01 01:14:00 18
1 2022-01-01 01:24:15 20
2 2022-01-01 02:52:19 15
3 2022-01-01 02:54:00 14
4 2022-01-01 04:05:10 10
5 2022-01-01 05:35:09 9

Kita dapat menggunakan sintaks berikut untuk mengelompokkan kolom waktu berdasarkan jam dan menghitung jumlah penjualan setiap jam:

 #group by hours in time column and calculate sum of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . sum ()

time
1 38
2 29
4 10
5 9
Name: sales, dtype: int64

Dari hasilnya kita dapat melihat:

  • Sebanyak 38 penjualan dilakukan dalam satu jam pertama.
  • Sebanyak 29 penjualan dilakukan pada jam kedua.
  • Sebanyak 10 penjualan dilakukan pada jam keempat.
  • Sebanyak 9 penjualan dilakukan selama jam kelima.

Perhatikan bahwa kita juga dapat melakukan agregasi lain.

Misalnya, kita dapat menghitung jumlah rata-rata penjualan per jam:

 #group by hours in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour ]). dirty . mean ()

time
1 19.0
2 14.5
4 10.0
5 9.0
Name: sales, dtype: float64

Kita juga dapat mengelompokkan berdasarkan jam dan menit jika kita mau.

Misalnya, kode berikut menunjukkan cara menghitung jumlah penjualan yang dikelompokkan berdasarkan jam dan menit:

 #group by hours and minutes in time column and calculate mean of sales
df. groupby ([df[' time ']. dt . hour , df[' time ']. dt . minute ]). dirty . mean ()

time time
1 14 18
      24 20
2 52 15
      54 14
4 5 10
5 35 9
Name: sales, dtype: int64

Dari hasilnya kita dapat melihat:

  • Jumlah rata-rata penjualan selama 1 jam 14 menit adalah 18 .
  • Rata-rata jumlah penjualan selama 1 jam 23 menit adalah 20 .
  • Jumlah rata-rata penjualan selama 2 jam 52 menit adalah 15 .

Dan seterusnya.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:

Cara membuat rentang tanggal di Pandas
Cara mengekstrak bulan dari tanggal di Pandas
Bagaimana cara mengubah stempel waktu menjadi tanggal/waktu di Pandas

Tambahkan komentar

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