Bagaimana menemukan nilai maksimal per grup di pandas
Seringkali Anda mungkin ingin menemukan nilai maksimum per grup di pandas DataFrame.
Untungnya, hal ini mudah dilakukan menggunakan fungsi groupby() dan max() dengan sintaks berikut:
df. groupby (' column_name '). max ()
Tutorial ini menjelaskan beberapa contoh penggunaan praktis fungsi ini menggunakan pandas DataFrame berikut:
import pandas as pd #create pandas DataFrame df = pd. DataFrame ({'team': ['A', 'A', 'B', 'B', 'B', 'C', 'C'], 'points':[24, 23, 27, 11, 14, 8, 13], 'rebounds': [11, 8, 7, 6, 6, 5, 12]}) #display DataFrame print (df) team points rebounds 0 to 24 11 1 to 23 8 2 B 27 7 3 B 11 6 4 B 14 6 5 C 8 5 6 C 13 12
Contoh 1: nilai maksimum beberapa kolom yang dikelompokkan berdasarkan suatu variabel
Kode berikut menunjukkan cara menemukan nilai maksimum beberapa kolom, yang dikelompokkan berdasarkan variabel dalam DataFrame:
#find max values of points and rebounds, grouped by team df. groupby (' team '). max (). reset_index () team points rebounds 0 to 24 11 1 B 27 7 2 C 13 12
Dari hasilnya kita dapat melihat bahwa:
- Tim A mempunyai nilai poin maksimal 24 dan nilai rebound maksimal 11.
- Tim B mempunyai nilai poin maksimal 27 dan nilai rebound maksimal 7.
- Tim C memiliki nilai poin maksimal 13 dan nilai rebound maksimal 12.
Perhatikan bahwa kami menggunakan fungsi reset_index() untuk memastikan bahwa indeks cocok dengan indeks DataFrame asli.
Contoh 2: Nilai maksimum satu kolom yang dikelompokkan berdasarkan variabel
Kode berikut menunjukkan cara mencari nilai maksimum satu kolom, yang dikelompokkan dalam satu variabel:
#find max value of points, grouped by team df. groupby (' team ')[' points ']. max (). reset_index () team points 0 to 24 1 B 27 2 C 13
Contoh 3: Urutkan berdasarkan nilai maksimum
Kita juga bisa menggunakan fungsi sort_values() untuk mengurutkan nilai maksimum.
Kita dapat menentukan ascending=False untuk mengurutkan dari yang terbesar ke terkecil:
#find max value by team, sort descending df. groupby (' team ')[' points ']. max (). reset_index (). sort_values ([' points '], ascending= False ) team points 1 B 27 0 to 24 2 C 13
Atau kita dapat menentukan ascending=True untuk mengurutkan dari yang terkecil ke terbesar:
#find max value by team, sort ascending df. groupby (' team ')[' points ']. max (). reset_index (). sort_values ([' points '], ascending= True ) team points 2 C 13 0 to 24 1 B 27
Sumber daya tambahan
Cara menghitung jumlah kolom di Pandas
Cara menghitung rata-rata kolom di Pandas
Bagaimana menemukan nilai maksimum kolom di Pandas