Pandas Dataframe에서 값이 발생하는 빈도를 계산하는 방법

  1. df.groupby().count()메소드
  2. Series.value_counts()메소드
  3. df.groupby().size()메소드

때로는 데이터 프레임으로 작업 할 때 열에서 값이 발생하는 횟수를 계산하거나 빈도를 계산하기 위해 계산할 수 있습니다. 이 목적을 위해 주로 세 가지 방법이 사용됩니다. 그것들을 하나씩 살펴 보자.

  1. df.groupby().count() Series.value_counts() df.groupby().size()

다음 섹션에서 같은DataFrame을 다음과 같이 사용할 것입니다.

import pandas as pd

df = pd.DataFrame({
                    'A': [
                        'jim',
                        'jim',
                        'jim',
                        'jim',
                        'sal',
                        'tom',
                        'tom',
                        'sal',
                        'sal'],
                    'B': [
                        'a',
                        'b', 
                        'a', 
                        'b', 
                        'b', 
                        'b', 
                        'a', 
                        'a', 
                        'b']
                    })  

df.groupby().count()메소드

단일 열의 빈도를 계산하려면이 방법이 가장 좋습니다.

import pandas as pd

df = pd.DataFrame({
                    'A': [
                        'jim',
                        'jim',
                        'jim',
                        'jim',
                        'sal',
                        'tom',
                        'tom',
                        'sal',
                        'sal'],
                    'B': [
                        'a',
                        'b', 
                        'a', 
                        'b', 
                        'b', 
                        'b', 
                        'a', 
                        'a', 
                        'b']
                    })  

freq = df.groupby(['A']).count() 
print(freq)

freq = df.groupby(['B']).count() 
print(freq)

다음이 출력됩니다.

     B
A     
jim  4
sal  3
tom  2
   A
B   
a  4
b  5

Series.value_counts()메소드

모든 데이터 프레임 객체는Series 객체의 모음이므로이 방법은pandas.Series 객체에 가장 적합합니다.

이제Series.values_counts()함수를 사용하십시오

import pandas as pd

df = pd.DataFrame({
                    'A': [
                        'jim',
                        'jim',
                        'jim',
                        'jim',
                        'sal',
                        'tom',
                        'tom',
                        'sal',
                        'sal'],
                    'B': [
                        'a',
                        'b', 
                        'a', 
                        'b', 
                        'b', 
                        'b', 
                        'a', 
                        'a', 
                        'b']
                    })  

freq = df['A'].value_counts() 
print(freq) 

freq = df['B'].value_counts() 
print(freq) 

다음이 출력됩니다.

jim    4
sal    3
tom    2
Name: A, dtype: int64
b    5
a    4
Name: B, dtype: int64

df.groupby().size()메소드

위의 두 메소드는 여러 열의 빈도를 계산하는 데 사용할 수 없지만 여러 열에 대해 동시에 df.groupby().size()를 사용할 수 있습니다.

import pandas as pd

df = pd.DataFrame({
                    'A': [
                        'jim',
                        'jim',
                        'jim',
                        'jim',
                        'sal',
                        'tom',
                        'tom',
                        'sal',
                        'sal'],
                    'B': [
                        'a',
                        'b', 
                        'a', 
                        'b', 
                        'b', 
                        'b', 
                        'a', 
                        'a', 
                        'b']
                    })  

freq = df.groupby(['A', 'B']).size() 
print(freq)

다음이 출력됩니다.

A    B
jim  a    2
     b    2
sal  a    1
     b    2
tom  a    1
     b    1
dtype: int64