Cara menghitung maksimum geser di panda (dengan contoh)


Anda dapat menggunakan metode berikut untuk menghitung nilai maksimum bergulir di pandas DataFrame:

Metode 1: hitung maksimum geser

 df[' rolling_max '] = df. values_column . cummax ()

Metode 2: hitung maksimum geser per kelompok

 df[' rolling_max '] = df. groupby (' group_column '). values_column . cummax ()

Contoh berikut menunjukkan cara menggunakan masing-masing metode dalam praktik.

Contoh 1: hitung maksimum geser

Misalkan kita memiliki panda DataFrame berikut yang menunjukkan penjualan yang dilakukan setiap hari di sebuah toko:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
                   ' sales ': [4, 6, 5, 8, 14, 13, 13, 12, 9, 8, 19, 14]})

#view DataFrame
print (df)

    day sales
0 1 4
1 2 6
2 3 5
3 4 8
4 5 14
5 6 13
6 7 13
7 8 12
8 9 9
9 10 8
10 11 19
11 12 14

Kita dapat menggunakan sintaks berikut untuk membuat kolom baru yang menampilkan nilai penjualan maksimum bergulir:

 #add column that displays rolling maximum of sales
df[' rolling_max '] = df. dirty . cummax ()

#view updated DataFrame
print (df)

    day sales rolling_max
0 1 4 4
1 2 6 6
2 3 5 6
3 4 8 8
4 5 14 14
5 6 13 14
6 7 13 14
7 8 12 14
8 9 9 14
9 10 8 14
10 11 19 19
11 12 14 19

Kolom baru berjudul Rolling_max menampilkan nilai penjualan maksimum yang bergulir.

Contoh 2: hitung maksimum geser per kelompok

Katakanlah kita memiliki panda DataFrame berikut yang menunjukkan penjualan yang dilakukan setiap hari di dua toko berbeda:

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' store ': ['A', 'A', 'A', 'A', 'A', 'A',
                             'B', 'B', 'B', 'B', 'B', 'B'],
                   ' day ': [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],
                   ' sales ': [4, 6, 5, 8, 14, 13, 13, 12, 9, 8, 19, 14]})

#view DataFrame
print (df)

   store day sales
0 to 1 4
1 to 2 6
2 to 3 5
3 to 4 8
4 to 5 14
5 to 6 13
6 B 7 13
7 B 8 12
8 B 9 9
9 B 10 8
10 B 11 19
11 B 12 14

Kita dapat menggunakan sintaks berikut untuk membuat kolom baru yang menampilkan nilai penjualan maksimum bergulir yang dikelompokkan berdasarkan toko:

 #add column that displays rolling maximum of sales grouped by store
df[' rolling_max '] = df. groupby (' store '). dirty . cummax ()

#view updated DataFrame
print (df)

   store day sales rolling_max
0 A 1 4 4
1 to 2 6 6
2 to 3 5 6
3 to 4 8 8
4 to 5 14 14
5 to 6 13 14
6 B 7 13 13
7 B 8 12 13
8 B 9 9 13
9 B 10 8 13
10 B 11 19 19
11 B 12 14 19

Kolom baru berjudul Rolling_max menampilkan nilai penjualan maksimum bergulir, yang dikelompokkan berdasarkan toko.

Sumber daya tambahan

Tutorial berikut menjelaskan cara melakukan operasi umum lainnya di panda:

Cara menghapus baris di Pandas DataFrame berdasarkan kondisi
Cara memfilter Pandas DataFrame pada berbagai kondisi
Cara menggunakan filter “TIDAK DALAM” di Pandas DataFrame

Tambahkan komentar

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