Cara melakukan pengelompokan data dengan python: dengan contoh
Anda dapat menggunakan sintaks dasar berikut untuk melakukan pengelompokan data pada pandas DataFrame:
import pandas as pd #perform binning with 3 bins df[' new_bin '] = pd. qcut (df[' variable_name '], q= 3 )
Contoh berikut menunjukkan cara menggunakan sintaksis ini dalam praktiknya dengan pandas DataFrame berikut:
import pandas as pd
#createDataFrame
df = pd. DataFrame ({' points ': [4, 4, 7, 8, 12, 13, 15, 18, 22, 23, 23, 25],
' assists ': [2, 5, 4, 7, 7, 8, 5, 4, 5, 11, 13, 8],
' rebounds ': [7, 7, 4, 6, 3, 8, 9, 9, 12, 11, 8, 9]})
#view DataFrame
print (df)
points assists rebounds
0 4 2 7
1 4 5 7
2 7 4 4
3 8 7 6
4 12 7 3
5 13 8 8
6 15 5 9
7 18 4 9
8 22 5 12
9 23 11 11
10 23 13 8
11 25 8 9
Contoh 1: Lakukan pengelompokan data master
Kode berikut menunjukkan cara melakukan pengelompokan data pada variabel poin menggunakan fungsi qcut() dengan tanda putus tertentu:
#perform data binning on variable points
df[' points_bin '] = pd. qcut (df[' points '], q= 3 )
#view updated DataFrame
print (df)
points assists rebounds points_bin
0 4 2 7 (3,999, 10,667]
1 4 5 7 (3,999, 10,667]
2 7 4 4 (3,999, 10,667]
3 8 7 6 (3,999, 10,667]
4 12 7 3 (10,667, 19,333]
5 13 8 8 (10,667, 19,333]
6 15 5 9 (10,667, 19,333]
7 18 4 9 (10,667, 19,333]
8 22 5 12 (19.333, 25.0]
9 23 11 11 (19.333, 25.0]
10 23 13 8 (19.333, 25.0]
11 25 8 9 (19.333, 25.0]
Perhatikan bahwa setiap baris dalam bingkai data telah ditempatkan ke dalam salah satu dari tiga kelompok berdasarkan nilai kolom titik.
Kita dapat menggunakan fungsi value_counts() untuk mengetahui berapa banyak baris yang ditempatkan di setiap nampan:
#count frequency of each bin
df[' points_bin ']. value_counts ()
(3,999, 10,667] 4
(10.667, 19.333] 4
(19.333, 25.0] 4
Name: points_bin, dtype: int64
Kita dapat melihat bahwa setiap bin berisi 4 observasi.
Contoh 2: Lakukan pengelompokan data dengan kuantil tertentu
Kita juga dapat melakukan pengelompokan data menggunakan kuantil tertentu:
#perform data binning on variable points with specific quantiles
df[' points_bin '] = pd. qcut (df[' points '], q=[0, .2, .4, .6, .8, 1])
#view updated DataFrame
print (df)
points assists rebounds points_bin
0 4 2 7 (3.999, 7.2]
1 4 5 7 (3.999, 7.2]
2 7 4 4 (3.999, 7.2]
3 8 7 6 (7.2, 12.4]
4 12 7 3 (7.2, 12.4]
5 13 8 8 (12.4, 16.8]
6 15 5 9 (12.4, 16.8]
7 18 4 9 (16.8, 22.8]
8 22 5 12 (16.8, 22.8]
9 23 11 11 (22.8, 25.0]
10 23 13 8 (22.8, 25.0]
11 25 8 9 (22.8, 25.0]
Contoh 3: Lakukan pengelompokan data dengan label
Kami juga dapat melakukan pengelompokan data menggunakan kuantil dan label tertentu:
#perform data binning on points variable with specific quantiles and labels
df[' points_bin '] = pd. qcut (df[' points '],
q=[0, .2, .4, .6, .8, 1],
labels=[' A ',' B ',' C ',' D ',' E '])
#view updated DataFrame
print (df)
points assists rebounds points_bin
0 4 2 7 A
1 4 5 7 A
2 7 4 4 A
3 8 7 6 B
4 12 7 3 B
5 13 8 8 C
6 15 5 9 C
7 18 4 9 D
8 22 5 12 D
9 23 11 11 E
10 23 13 8 E
11 25 8 9 E
Perhatikan bahwa setiap baris telah diberi nampan berdasarkan nilai kolom titik dan nampan telah diberi label menggunakan huruf.
Sumber daya tambahan
Tutorial berikut menjelaskan cara melakukan tugas umum lainnya di panda:
Pandas: cara menggunakan fungsi value_counts()
Pandas: Cara membuat tabel pivot dengan jumlah nilai
Pandas: cara menghitung kemunculan nilai tertentu dalam sebuah kolom