Pandas GroupBy – Menggunakan Statistik Method

Method statistik yang dimaksud adalah max, min, mean, sum dan lainnya.

Pertama kita load library dan data yang digunakan.

import pandas as pd

df = pd.read_csv("fortune1000.csv", index_col="Rank")
df.head()

Kemudian kita buat group berdasarkan sector.

sector = df.groupby("Sector")

Method max()

Parameter yang digunakan adalah numeric_only, default adalah false. Jika false, maka method max akan melakukan perhitungan max terhadap kolom terdekat dengan index group, dalam hal ini adalah Nama Company.

Hasilnya akan mirip dengan perintah last().

sector.max()

Jika parameter numeric_only diset true, akan mengembalikan dataframe dengan perhitungan max pada kolom numeric saja.

sector.max(numeric_only=True)

Method min()

Sama dengan method max(), hanya akan menghitung nilai minimum. Tidak akan dibahas secara detail, karena sangat mirip dengan method max().

#akan mengembalikan dataframe dengan perhitungan min pada kolom terdekat dengan index group
sector.min()

#akan mengembalikan dataframe dengan perhitungan min pada kolom numeric saja.
sector.min(numeric_only=True)

Method mean()

Akan melakukan perhitungan mean, Pandas secara default akan melakukan perhitungan hanya pada kolom numeric saja.

sector.mean()

Method sum()

Akan melakukan perhitungan sum pada kolom numeric secara default.

sector.mean()

Melakukan cross check

Anda bisa melakukan cross check apakah perhitungan diatas sesuai. Contoh perhitungan sum untuk sector Apparel.

sector.get_group("Apparel")["Revenue"].sum()
#akan return 95968

Sesuai ekspektasi, nilai yang dikembalikan akan sama dengan perhitung sum() pada object groupby.

Perhitungan Level Kolom

Anda juga bisa melakukan Perhitungan dalam level kolom, contoh menghitung sum dari kolom revenue yang akan mengembalikan series.

sector["Revenue"].sum()
Sector
Aerospace & Defense              357940
Apparel                           95968
Business Services                272195
Chemicals                        243897
Energy                          1517809
Engineering & Construction       153983
Financials                      2217159
Food and Drug Stores             483769
Food, Beverages & Tobacco        555967
Health Care                     1614707
Hotels, Resturants & Leisure     169546
Household Products               234737
Industrials                      497581
Materials                        259145
Media                            220764
Motor Vehicles & Parts           482540
Retailing                       1465076
Technology                      1377600
Telecommunications               461834
Transportation                   408508
Wholesalers                      444800
Name: Revenue, dtype: int64

Kolom yang digunakan tidak dibatasi, artinya Anda bisa passing kolom berupa list.

sector[["Revenue", "Profits"]].sum()
Sharing is caring:

Leave a Comment