วิธีจัดกลุ่มข้อมูลใน python: พร้อมตัวอย่าง


คุณสามารถใช้ไวยากรณ์พื้นฐานต่อไปนี้เพื่อดำเนินการจัดกลุ่มข้อมูลบน DataFrame ของแพนด้า:

 import pandas as pd

#perform binning with 3 bins
df[' new_bin '] = pd. qcut (df[' variable_name '], q= 3 )

ตัวอย่างต่อไปนี้แสดงวิธีการใช้ไวยากรณ์นี้ในทางปฏิบัติกับ Pandas DataFrame ต่อไปนี้:

 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

ตัวอย่างที่ 1: ทำการจัดกลุ่มข้อมูลหลัก

รหัสต่อไปนี้แสดงวิธีการจัดกลุ่มข้อมูลใน ตัวแปรจุด โดยใช้ฟังก์ชัน qcut() พร้อมเครื่องหมายแบ่งเฉพาะ:

 #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]

โปรดทราบว่าแต่ละแถวในกรอบข้อมูลถูกวางไว้เป็นหนึ่งในสามกลุ่มตามค่าของคอลัมน์จุด

เราสามารถใช้ฟังก์ชัน value_counts() เพื่อค้นหาจำนวนแถวที่ถูกวางไว้ในแต่ละ bin:

 #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

เราจะเห็นว่าแต่ละถังมีข้อสังเกตอยู่ 4 รายการ

ตัวอย่างที่ 2: ทำการจัดกลุ่มข้อมูลด้วยควอนไทล์เฉพาะ

นอกจากนี้เรายังสามารถทำการจัดกลุ่มข้อมูลโดยใช้ควอนไทล์เฉพาะได้:

 #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]

ตัวอย่างที่ 3: ทำการจัดกลุ่มข้อมูลด้วยป้ายกำกับ

เรายังดำเนินการจัดกลุ่มข้อมูลโดยใช้ควอนไทล์และป้ายกำกับเฉพาะได้:

 #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

โปรดทราบว่าแต่ละแถวได้รับการกำหนดถังขยะตามค่าคอลัมน์ จุด และถังขยะได้รับการติดป้ายกำกับด้วยตัวอักษร

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีการทำงานทั่วไปอื่นๆ ในแพนด้า:

Pandas: วิธีใช้ฟังก์ชัน value_counts()
นุ่น: วิธีสร้างตารางเดือยด้วยจำนวนค่า
Pandas: วิธีนับการเกิดขึ้นของค่าเฉพาะในคอลัมน์

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *