AI/Pandas

[Pandas] column 별로 데이터의 비율 알아내는 방법

sangwonYoon 2023. 3. 9. 01:18

DataFrame의 column 별로 데이터가 어떤 비율로 존재하는지 확인하는 방법에 대해 알아보자.


column 별 값의 비율 알아내는 방법

데이터프레임[column 이름].value_counts() / len(데이터프레임[column 이름])
print(df["gender"].value_counts() / len(df["gender"]))
# 출력:
# male      0.644003
# female    0.355997
# Name: gender, dtype: float64

len 함수는 전체 데이터의 개수를 반환한다.

따라서 위 코드는 "gender" column에서 결측값을 포함한 데이터 비율을 살펴볼 수 있는 코드이다.

 

결측값을 제외한 데이터의 비율을 살펴보기 위해서는 len 함수 대신, count 함수를 사용해야 한다.

데이터프레임[column 이름].value_counts() / 데이터프레임[column 이름].count()
print(df["gender"].value_counts() / df["gender"]).count()
# 출력:
# male      0.644003
# female    0.355997
# Name: gender, dtype: float64

 

column 별 NaN 값의 비율 알아내는 방법

데이터프레임.isnull().sum() / len(데이터프레임)
raw_data = {"A":[-1,4,13], "B":[2,5,6], "C":[0,6,11]}

df = pd.DataFrame(raw_data, index = ['first', 'second', 'third'], columns = ["A", "B", "C", "D"])
print(df)
# 출력:
#          A  B   C    D
# first   -1  2   0  NaN
# second   4  5   6  NaN
# third   13  6  11  NaN

print(df.isnull().sum() / len(df)) # column 내 NaN의 개수 / column의 길이
# 출력:
# A    0.0
# B    0.0
# C    0.0
# D    1.0
# dtype: float64

 

sum 함수에 axis = 1 값을 넣어 row 별 NaN 값의 비율도 알아낼 수 있다.

print(df.isnull().sum(axis=1) / len(df))
# 출력:
# first     0.333333
# second    0.333333
# third     0.333333
# dtype: float64