본문 바로가기

💻프로그래밍/python

[pandas] 5. 데이터 세기 (count , size, value_counts)

반응형

 

01.  데이터 개수 세기 :  count( ) 

위의 데이터 프레임(df1)에서 각 columns별로 몇 개의 데이터가 들어있는지 확인하는 방법에 대해 알아보자. 

 

 

 

〰️  데이터 프레임에 count( )적용하기

df1.count()

위의 코드처럼 전체 데이터 프레임 df1에  .count( ) 를 적용하면 각 columns에 몇 개의 데이터가 있는지 알 수 있다. 이때 NaN값은 세지 않는다.

 

 

 

 

〰️  특정 columns(series 형태)에 count( ) 적용하기

df1['Pclass'].count()

count( )는 데이터 프레임뿐만 아니라, 시리즈(series) 형태인 경우에도 적용할 수 있다. 따라서 위의 코드처럼 특정 columns를 추출한 뒤, count( )를 적용하면 해당 column에 몇 개의 데이터가 있는지 알 수 있다.

 

 

 

🖐 참고 : count( )와 size의 차이는?

. count( )와. size 모두 데이터 개수를 세어준다는 점이 같다. 하지만 약간의 차이점이 있는데 count( )는 NaN값은 제외한 나머지 데이터들의 개수를 세어준다. 반면 size는 NaN도 포함하여 모든 데이터의 갯수를 세어준다는 차이가 있다. (또한, size를 적용할 때는 뒤에 괄호( )를 붙이지 않는다.)

 

 

이번에는 'Embarked' columns를 가지고 예를 들어보도록 하겠다.

 

 

 

먼저  .isnull( ).sum( ) 을 이용하여 해당 columns의 결측치 값을 확인해보면 2개의 결측치가 있음을 알 수 있다.

 

 

 

이 columns에  count( ) 를 이용하여 데이터 개수를 세어보면 889개의 데이터가 있음을 알 수 있다.

 

 

 

이번에는 size 를 이용하여 해당 columns의 데이터 개수를 세어보면 891개가 있다. size는 NaN값을 포함하여 데이터 갯수를 세기 때문에 count( )를 적용했을 때 보다 결측 값의 개수(2개)만큼 더해진 값이 출력된 것이다.

 

 

 

 


02. 카테고리별 값 세기 :  value_counts( ) 

시리즈의 값이 정수, 문자열, 카테고리 값인 경우에는 value_counts( ) 메서드로 각각의 값이 나온 횟수를 셀 수 있다.

 

 

〰️ 특정 columns에 value_counts( ) 적용하기

value_counts( )를 이용하여 데이터 프레임(df1)의 'Pclass'라는 columns의 데이터들을 살펴보고자 한다.

 

df1['Pclass'].unique()

 

그전에, unique( )를 이용하여 'Pcalss'에 있는 유일한 값을 확인해보면 3, 1, 2로 총 3가지 종류의 데이터들로 구성되어 있음을 알 수 있다.

 

 

 

df1['Pclass'].value_counts()

그렇다면  value_counts( ) 를 이용하여 3, 2,1의 종류별로 각각 몇 개의 데이터가 있는지 세어보자. 출력된 값을 보면 '3'이라는 값은 355개, '1'은 184개, '2'는 173개 있다.

 

 

🖐 참고 : unique( )와 value_counts( )

위의 내용을 다시 한번 정리해보자면 unique( )는 해당 columns에 어떤 종류의 데이터가 있는지 알려주는 것이다. 'Pclass'라는 columns에는 1,2,3 이렇게 총 3개의 종류가 있으므로 unique( )의 출력 값은 1,2,3이 된다. value_counts( )는 각 종류별로 몇 개의 데이터가 있는지 세어주는 것이므로 각 종류와 그 옆에는 그 종류별 데이터의 개수가 함께 출력된다.

 

 

 

〰️ 데이터 프레임에 value_counts( ) 적용하기

AttributeError: 'DataFrame' object has no attribute 'value_counts'

 

count( )는 데이터 프레임과 시리즈 형태에 모두 적용할 수 있었지만, value_counts( )는 데이터 프레임에는 적용할 수 없다. 따라서 위의 방법처럼 전체 데이터 프레임에서 value_counts( )를 적용하여 값을 세고 싶은 특정 columns를 설정해주어 사용하자!

 

 

 

본 포스팅의 저작권은 '빅데희터'에 있습니다. 

무단 도용, 복제 및 사용을 금지하며 이를 어길 시 

관계 법령에 의거해 처벌을 받을 수 있습니다.

 

 

 

🖇 본문에서 쓰인 데이터 다운로드

https://www.kaggle.com/c/bike-sharing-demand

반응형