파이썬 함수

pandas 라이브러리(4) 카테고리컬 데이터( Categorical Data)

개발연습자1 2022. 11. 24. 17:10

pandas 데이터프레임중 특정 칼럼이 중복인 데이터가 있는데 이 데이터를 카테고리컬 데이터( Categorical Data) 라 한다.

 

이 카테고리컬 데이터( Categorical Data)는 항목을 찾는데 pandas로 다룰수 있다.

 

#데이터프레임을 외부에서 부르기 때문에
#더 이상 코드로 데이터프레임을 만들지 않는다

df = pd.read_csv('../data/fake_company.csv')
df

#중복된 데이터는 무엇인가?
df['Year'].unique()
>>> array([1990, 1991, 1992], dtype=int64)

#중복된 데이터의 항목수는 얼마인가?
df['Year'].nunique()
>>> 3

 

describe() 함수는 카테고리컬 데이터( Categorical Data) 뿐만 아니라 다른 데이터프레임에서도 쓸 수 있지만 카테고리컬 데이터( Categorical Data) 문자열 데이터의 정보를 보여주기 때문에 의미가 있다.

 

#데이터프레임 전체의 통계치를 확인 => 숫자데이터만

df.describe()

문자열 컬럼에  describe() 함수를 사용하면 다음과 같은 결과가 나온다.

# 문자열 컬럼에 describe() 함수 사용

df['Name'].describe()

>>> count         9
    unique        3
    top       Alice
    freq          3
    Name: Name, dtype: object

 

카테고리컬 데이터( Categorical Data)를 분석할때는 중복된 항목별로 묶어서

데이터를 분석 할 수 있다.

# 각 년도별로, 지급한 연봉 총합을 구하라.
df.groupby("Year")['Salary'].sum()
>>> Year
    1990    153000
    1991    162000
    1992    174000
    Name: Salary, dtype: int64
    
# 각 직원별로, 얼마씩 받았는지 연봉 평균을 구하세요.
df.groupby("Name")['Salary'].mean()
>>> Name
    Alice      54000.0
    Bob        50000.0
    Charlie    59000.0
    Name: Salary, dtype: float64
    
#연도별로 , 연봉의 총합, 평균, 표준편차를 구하시오.

import numpy as np
df.groupby("Year")['Salary'].agg([np.sum,np.mean,np.std])
# agg라는 함수는 numpy함수이고 묶음이라는 뜻이다.

 

또한 데이터 내에 중복된 데이터가 무엇이고 그 데이터가 전체에 얼마나 있는지도 파악 할 수 있다.

 

#Name 컬럼은, 각 이름별로 몇개의 데이터가 있나?

#방법1
df.groupby("Name")['Name'].count()

>>> Name
    Alice      3
    Bob        3
    Charlie    3
    Name: Name, dtype: int64
    
#방법2
df['Name'].value_counts()

>>> Alice      3
    Bob        3
    Charlie    3
    Name: Name, dtype: int64
반응형