Bạn có thể sử dụng cú pháp cơ bản sau đây để thực hiện Binning dữ liệu trên Pandas DataFrame:
import pandas as pd #perform binning with 3 bins df['new_bin'] = pd.qcut(df['variable_name'], q=3)Các ví dụ sau đây cho thấy cách sử dụng cú pháp này trong thực tế với DataFrame Pandas sau:
import pandas as pd #create DataFrame 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 9Ví dụ 1: Thực hiện Binning dữ liệu cơ bản
Mã sau đây cho thấy cách thực hiện Binning dữ liệu trên biến điểm bằng cách sử dụng hàm Qcut () với các dấu hiệu ngắt cụ thể:points variable using the qcut() function with specific break marks:
#perform data binning on points variable 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]Lưu ý rằng mỗi hàng của khung dữ liệu đã được đặt trong một trong ba thùng dựa trên giá trị trong cột điểm.
Chúng ta có thể sử dụng hàm value_counts () để tìm có bao nhiêu hàng đã được đặt trong mỗi thùng:value_counts() function to find how many rows have been placed in each 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: int64Chúng ta có thể thấy rằng mỗi thùng chứa 4 quan sát.
Ví dụ 2: Thực hiện Binning dữ liệu với các lượng tử cụ thể
Chúng tôi cũng có thể thực hiện Binning dữ liệu bằng cách sử dụng các lượng tử cụ thể:
#perform data binning on points variable 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]Ví dụ 3: Thực hiện Binning dữ liệu với nhãnPerform Data Binning with Labels
Chúng tôi cũng có thể thực hiện Binning dữ liệu bằng cách sử dụng các lượng tử cụ thể và các nhãn cụ thể:
#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 ELưu ý rằng mỗi hàng đã được gán một thùng dựa trên giá trị của cột điểm và các thùng đã được dán nhãn bằng các chữ cái.points column and the bins have been labeled using letters.
Tài nguyên bổ sung
Các hướng dẫn sau đây giải thích cách thực hiện các nhiệm vụ phổ biến khác trong gấu trúc:
Pandas: Cách sử dụng giá trị_counts () Chức năng: Cách tạo bảng trục với số lượng giá trị: Cách đếm các lần xuất hiện của giá trị cụ thể trong cột
Pandas: How to
Create Pivot Table with Count of Values
Pandas: How to Count Occurrences of Specific Value in Column