Operasi groupby berguna untuk melakukan pengelompokan data yang besar, sehingga dapat dilakukan operasi lainnya terhadap grup tersebut.
Untuk keperluan modul groupby, digunakan data fortune1000.csv
File colab yang digunakan dapat diakses di Pandas GroupBy.ipynb.
Pertama load library dan data yang digunakan.
import pandas as pd
df = pd.read_csv("fortune1000.csv", index_col="Rank")
df.head()
Untuk membuat grouping gunakan method groupby dengan parameter kolom yang akan digunakan untuk grouping. Contoh kita melakukan grouping berdasarkan sector.
sector = df.groupby("Sector")
Berikut method yang cukup sering digunakan untuk melihat informasi object dan data preview.
Method size()
Berguna untuk melihat ukuran dari object groupby, gunakan method size yang akan mengembalikan series dengan Data sector sebagai index.
sector.size()
Sector
Aerospace & Defense 20
Apparel 15
Business Services 51
Chemicals 30
Energy 122
Engineering & Construction 26
Financials 139
Food and Drug Stores 15
Food, Beverages & Tobacco 43
Health Care 75
Hotels, Resturants & Leisure 25
Household Products 28
Industrials 46
Materials 43
Media 25
Motor Vehicles & Parts 24
Retailing 80
Technology 102
Telecommunications 15
Transportation 36
Wholesalers 40
dtype: int64
Method first()
Mirip perintah head. Berguna untuk menampilkan data pertama dari masing-masing sector (atau kolom yang Anda gunakan sebagai grouping).
sector.first()
Method last()
Berguna untuk menampilkan data terakahir dari masing-masing sector (atau kolom yang Anda gunakan sebagai grouping).
sector.last()
Attribute groups
Akan mengembalikan python dictionary dengan informasi index data yang terdapat pada masing-masing group.
Contoh, Data dengan index 24, 45, 60, 88, 118, 120, 209, 245, 282, 378, 389, 490, 560, 605, 785, 788, 836, 903, 958, 987 akan berada dalam group Aerospace & Defense.
sector.groups
{'Aerospace & Defense': [24, 45, 60, 88, 118, 120, 209, 245, 282, 378, 389, 490, 560, 605, 785, 788, 836, 903, 958, 987], 'Apparel': [91, 231, 340, 354, 448, 547, 575, 597, 683, 695, 726, 794, 877, 882, 917]
...
...
'Transportation': [48, 58, 67, 68, 80, 129, 142, 208, 239, 270, 353, 390, 395, 405, 407, 416, 432, 459, 521, 528, 570, 578, 642, 672, 709, 713, 740, 800, 814, 858, 884, 930, 933, 945, 972, 974], 'Wholesalers': [57, 64, 92, 102, 108, 119, 122, 167, 183, 185, 212, 276, 285, 315, 317, 320, 323, 335, 351, 357, 369, 391, 423, 463, 474, 477, 484, 564, 581, 599, 627, 653, 685, 727, 747, 780, 808, 837, 875, 991]}
Anda dapat lakukan crosscheck dengan perintah loc[] pada dataframe original.
df.loc[24]
Company Boeing
Sector Aerospace & Defense
Industry Aerospace and Defense
Location Chicago, IL
Revenue 96114
Profits 5176
Employees 161400
Name: 24, dtype: object