본문 바로가기
python

Python Pandas Series.value_counts()(Series 개수 세기)

by WeRun 2022. 8. 7.

Pandas에는 Series와 DataFrame이 있는데요. value_counts()함수는 Series, DataFrame에서 모두 사용할 수 있는 함수로

각각 사용방법이 다릅니다. 이번 포스팅에는 Series의 valure_counts()에 대해서 이야기하겠습니다.

포스팅에 앞서 Serial이 아닌 전체 DataFrame에서 행단위가 아닌 각각의 값들의 개수를 세는 것은 불가능한데요.

이를 위해 다양한 함수를 사용하여 개수를 세는 포스팅을 링크하였습니다.

관심있으신 분은 들어가서 보시고 더 좋은 방법있으면 댓글 부탁드립니다~

2022.08.04 - [python] - Python DataFrame 전체 값 개수 세고 나열하기(value_counts()/concat()/fillna()/sum()/sort_values())

 

Python DataFrame 전체 값 개수 세고 나열하기(value_counts()/concat()/fillna()/sum()/sort_values())

Excel 데이터 취합을 하다보면 카테고리별 잘 나눠진 데이터가 아닌 분류없이 무작위로 써진 데이터를 볼수있는데요. 간단하게 예를들면 제조현장에서는 일별 고장난 설비명을 순서없이 쭉 나열

werun.tistory.com

pandas.Series.value_counts

Series.value_counts(normalize=False, sort=True, ascending=False, bins=None, dropna=True)

 

Parameter

normalize: True or False, True 시 값들의 빈도 수를 비율로 나타냅니다.

sort: 행을 빈도수에 맞춰 정렬합니다.

ascending: 결과값을 오름차순으로 정렬할 지 결정합니다.

bins: bins 값에 따라 전체 값을 자동으로 구분짓고 각 구역과 구역에 따른 갯수를 나타냅니다.

dropna: NaN(Null) 값을 표현 할 지 여부를 결정합니다.

 

아래와 같이 성씨가 나열되어있는 데이터를 사용해보겠습니다.

Series.value_counts()를 사용하기 때문에 df.value_counts()를 사용하면 안되고 Series 데이터인 df['1일'].value_counts()를 사용하였더니 아래와 같이 성씨별 갯수를 세어주는 것을 확인할 수 있습니다.

1) normalize

True로 설정하는 경우 값들의 빈도 수를 비율로 나타냅니다.

2) sort

행을 빈도수에 맞춰 정렬 하는 파라미터로 기본값이 True이기 때문에 False를 실행 해보았습니다.

3) ascending

결과값을 오름차순으로 정렬할 지 결정합니다. 이것도 기본이 False이기 때문에 True로 실행 해 보았습니다.

4) dropna

NaN(Null) 값을 표현할 지 결정합니다.

5) bins

bins 값에 따라 전체 값을 자동으로 구분짓고 각 구역과 구역에 따른 갯수를 나타냅니다.

단, numeric 데이터만 가능합니다.

아래와 같이 문자열 데이터에 사용하면 TypeError가 발생하는 것을 확인 할 수 있습니다.

간단하게 Series 데이터를 만들어서 확인해보면 

아래와 같이 3구역으로 값들을 나누고 갯수를 나타내는 것을 볼 수 있습니다.

끝~~