반응형
2가지 방법
1. groupby 함수 활용
# 소수점을 반올림하는 함수 round() 활용
data2 = round(data['AGE'],0)
연산결과는 series타입
print(type(data2))
<class 'pandas.core.series.Series'>
연산을 위해 DataFrame으로 변환
data2 = pd.DataFrame(data2)
# groupby() 함수로 변수의 값별로 개수를 구할 수 있음
print(data2.groupby(['AGE'])['AGE'].count())
data3 = data2.groupby(['AGE'])['AGE'].count()
count() 연산된 결과도 series 타입
연산을 위해 DataFrame으로 변환
data3 = pd.DataFrame(data3)
# 데이터프레임의 컬럼이름 확인
print(data3.columns)
print(data3)
Index(['AGE'], dtype='object')
AGE
AGE
3.0 1
6.0 3
7.0 3
8.0 3
9.0 1
... ...
96.0 15
97.0 17
98.0 19
99.0 10
100.0 43
[91 rows x 1 columns]
count결과 컬럼명을 AGE에서 Count로 변경
data3.columns = ['Count']
print(data3)
Count
AGE
3.0 1
6.0 3
7.0 3
8.0 3
9.0 1
... ...
96.0 15
97.0 17
98.0 19
99.0 10
100.0 43
[91 rows x 1 columns]
# 인텍스값으로 변경된 Age를 다시 컬럼으로 활용하기 위해 reset_index() 함수를 활용
- drop = False 옵션 활용
- inplace = Truue 옵션 적용
data3.reset_index(drop = False, inplace = True)
print(data3)
AGE Count
0 3.0 1
1 6.0 3
2 7.0 3
3 8.0 3
4 9.0 1
.. ... ...
86 96.0 15
87 97.0 17
88 98.0 19
89 99.0 10
90 100.0 43
[91 rows x 2 columns]
data3.sort_values(by = 'Count', ascending = False, inplace = True)
print(data3)
AGE Count
90 100.0 43
88 98.0 19
87 97.0 17
84 94.0 16
86 96.0 15
.. ... ...
7 14.0 1
6 13.0 1
4 9.0 1
42 51.0 1
0 3.0 1
[91 rows x 2 columns]
# 최빈값과 빈도수 출력
print(data3.iloc[0,0], data3.iloc[0,1])
2. scipy의 mode()함수 활용
from scipy.stats import mode
mode(data)
-> 최빈값과 갯수가 출력
최빈값만 출력
mode(data)[0]
정수형으로 출력
int(mode(data)[0])
최빈값 갯수만 출력
mode(data)[1]
정수형으로 출력
int(mode(data)[1])
반응형
'독서' 카테고리의 다른 글
유니크한 값 구하기 (0) | 2022.06.06 |
---|---|
StandardScaler (0) | 2022.06.06 |
MinMaxScaler (0) | 2022.06.05 |
오름차순/내림차순 (0) | 2022.06.05 |
그룹별 집계, 요약하기 (0) | 2022.06.03 |