Cara mengelompokkan berdasarkan minggu di pandas dataframe (dengan contoh)
Anda dapat menggunakan sintaks dasar berikut untuk mengelompokkan baris berdasarkan minggu di pandas DataFrame:
#convert date column to datetime and subtract one week df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ') #calculate sum of values, grouped by week df. groupby ([pd. Group (key=' date ', freq=' W ')])[' values ']. sum ()
Rumus khusus ini mengelompokkan baris berdasarkan minggu di kolom tanggal dan menghitung jumlah nilai untuk kolom nilai di DataFrame.
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya.
Contoh: Cara mengelompokkan berdasarkan minggu di Pandas
Katakanlah kita memiliki panda DataFrame berikut yang menunjukkan penjualan yang dilakukan oleh suatu perusahaan pada tanggal berbeda:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' date ': pd. date_range (start='1/5/2022', freq='D', periods=15),
' sales ': [6, 8, 9, 5, 4, 8, 8, 3, 5, 9, 8, 3, 4, 7, 7]})
#view DataFrame
print (df)
dirty date
0 2022-01-05 6
1 2022-01-06 8
2 2022-01-07 9
3 2022-01-08 5
4 2022-01-09 4
5 2022-01-10 8
6 2022-01-11 8
7 2022-01-12 3
8 2022-01-13 5
9 2022-01-14 9
10 2022-01-15 8
11 2022-01-16 3
12 2022-01-17 4
13 2022-01-18 7
14 2022-01-19 7
Terkait: Cara Membuat Rentang Tanggal di Pandas
Kita dapat menggunakan sintaks berikut untuk menghitung jumlah penjualan yang dikelompokkan berdasarkan minggu:
#convert date column to datetime and subtract one week df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ') #calculate sum of values, grouped by week df. groupby ([pd. Group (key=' date ', freq=' W ')])[' sales ']. sum () date 2022-01-02 32 2022-01-09 44 2022-01-16 18 Freq: W-SUN, Name: sales, dtype: int64
Berikut cara menafsirkan hasilnya:
- Ada total 32 penjualan selama seminggu yang dimulai setelah 1/2/2022.
- Ada total 44 penjualan selama seminggu yang dimulai setelah 01/09/2022.
- Sebanyak 18 penjualan dilakukan selama seminggu mulai hari setelah 16/01/2022.
Perlu dicatat bahwa secara default, panda berasumsi bahwa minggu dimulai pada hari setelah Minggu ( W-SUN ).
Namun, menurut dokumentasi , Anda dapat mengubah nilai ini untuk Freq .
Misalnya, Anda dapat menentukan Freq=W-MON jika Anda ingin setiap minggu dimulai pada hari setelah Senin (yaitu Selasa).
Kita dapat menggunakan sintaks serupa untuk menghitung nilai penjualan maksimum yang dikelompokkan berdasarkan minggu:
#convert date column to datetime and subtract one week df[' date '] = pd. to_datetime (df[' date ']) - pd. to_timedelta (7, unit=' d ') #calculate max of values, grouped by week df. groupby ([pd. Group (key=' date ', freq=' W ')])[' sales ']. max () date 2022-01-02 9 2022-01-09 9 2022-01-16 7 Freq: W-SUN, Name: sales, dtype: int64
Berikut cara menafsirkan hasilnya:
- Penjualan maksimum per hari selama seminggu mulai hari setelah 01/02/2022 adalah 9 .
- Jumlah maksimum penjualan per hari selama seminggu yang dimulai setelah 01/9/2022 adalah 9 .
- Jumlah maksimum penjualan per hari selama seminggu mulai hari setelah 16/01/2022 adalah 7 .
Catatan : Anda dapat menemukan dokumentasi lengkap operasi groupby di pandas di sini .
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:
Cara mengelompokkan berdasarkan bulan di Pandas DataFrame
Cara mengelompokkan berdasarkan hari di Pandas DataFrame
Cara menggunakan Groupby dan menghitung secara kondisional di Pandas