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

Tambahkan komentar

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