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()