Python에서 데이터 그룹화를 수행하는 방법: 예제 포함
다음 기본 구문을 사용하여 Pandas 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() 함수를 사용하여 points 변수에 대한 데이터 그룹화를 수행하는 방법을 보여줍니다.
#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
각 Bin에는 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: 값 개수가 포함된 피벗 테이블을 만드는 방법
Pandas: 열에서 특정 값의 발생 횟수를 계산하는 방법