[데이터분석] 데이터프레임 정보 확인

2023. 4. 19. 21:21프로그래밍/데이터분석

반응형

안녕하세요. 오늘은 판다스 데이터프레임에 저장된 데이터 프레임에 저장된 정보를 확인하는 방법에 대해 알아보겠습니다.

import pandas as pd
example_data = {'Name': ['Daniel', 'Jude', 'Tim', 'Mac', 'Philip', 'Jordan', 'Bikram', 'Nancy'],
 '대학': ['ANU', 'USYD', 'UC', 'UCLA', 'ANU', 'SNU', 'KAIST', 'POSTECH'],
 '키': [180, 184, 168, 187, 188, 202, 188, 190],
 '몸무게': [95, 80, 91, 73, 66, 85, 70, 95],
 '용돈': [85, 30, 80, 60, 35, 100, 65, 85],
 '학점': [4.5, 3.8, 3.3, 2.5, 1.5, 4.0, 4.5, 3.9],
 '학과': ['컴퓨터과', '수학과', '국문과', '자율전공학과', '', '영문과', '경제학과', '의예과']}
df = pd.DataFrame(example_data, index = ['1번','2번','3번','4번','5번','6번','7번','8번'])

오늘도 같은 예시 데이터를 사용 하겠습니다.

 

사실 제가 사용하는 예시데이터 같은경우 저장되어있는 정보가 사람이 직접 분석하는데 얼마 걸리지 않지만, 데이터 분석이 필요한 실제 파일을 받아 볼 경우, 행(row)의 갯수는 물론이고 열(column)갯수도 100개이상인 데이터도 많이 있습니다. 하지만 이러한 데이터프레임의 정보를 확인해주고 요약된데이터를 '판다스' 에서는 코드 한줄 두줄이면 모두 확인 해 볼 수 있습니다.

 

하나씩 알아보겠습니다.

 

1. Info()

df.info()
# 결과
<class 'pandas.core.frame.DataFrame'>
Index: 8 entries, 1번 to 8번
Data columns (total 7 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   Name    8 non-null      object 
 1   대학      8 non-null      object 
 2   키       8 non-null      int64  
 3   몸무게     8 non-null      int64  
 4   용돈      8 non-null      int64  
 5   학점      8 non-null      float64
 6   학과      8 non-null      object 
dtypes: float64(1), int64(3), object(3)
memory usage: 512.0+ bytes

가장 먼저 info 입니다. 기본적으로 행(row)의 갯수와 인덱스의 시작과 끝, 열(column)의 수 컬럼별 데이타타입, 사용하는 메모리 등의 정보를 나타냅니다.

 

2. Describe()

df.describe() # 1
df['용돈'].describe() # 2

이번엔 'describe' 입니다. 'info'에서 데이터 프레임 전체에대한 간력한 정보를 얻었다면, 'describe'를 통해서는 숫자형 데이터들의 정보를 한번에 요약해서 확인할 수 있습니다. #2 처럼 숫자형 데이터를 저장하는 하나의 컬럼의 정보만 불러오는것도 가능합니다.

#1 : df.describe()

count는 각 row에 저장된 정보수를 나타내고, mean 은 컬럼별 데이터의 평균을 나타냅니다. std 는 표준 편차를 의미하고 min 과 max는 각각 최솟값과 최댓값을 의미합니다. 25%, 50%, 75% 는 사분위수를 의미합니다.지금은 간단히 하위 %의 값을 의미한다고 생각하시면 될 것 같습니다.

 

3. Shape

df.shape
# (8, 7)

'Shape' 는 단어 의미그대로 데이터 프레임의 모양을 의미합니다. 튜플 형태로 (row수, column수)를 리턴합니다.

 

4. min(), max()

df.min() # 1
df.max() # 2
df['col'].min() # 3
df['col'].max() # 4

min() 과 max()는 각각 최솟값과 최댓값을 의미합니다. 데이터프레임에 바로 적용시키는경우 (#1, #2) 데이터 프레임에 각 컬럼에 최솟값 혹은 최댓값을 반환합니다. 하지만 특정 컬럼의 최소 최댓값만 얻고 싶으시다면 #3, #4 처럼 컬럼을 지정하여 적용하시면 해당 컬럼의 값을 리턴합니다.

 

5. mean(), median(), mode()

df[column].mean() # 1

df[column].median() # 2 

df[column].mode() # 3

mean()은 평균, median()은 중간값, mode()는 최빈값을 반환합니다. 세개 모두 바로 데이터 프레임에 적용할 수 있지만, mean과 median의 경우 숫자형 정보를 가지고있는 컬럼에 대한 값만 리턴합니다. mode는 단지 데이터내의 제일 갯수 가 많은 데이터를 반환하기때문에 문자열등의 데이터에대한 값도 얻어 올 수 있습니다. 단 주의할점은 최빈값은 여러개 존재 할 수 있기때문에 값이 리스트로 반환되는점 주의 하셔야겠습니다.

 

6. sum()

df[column].sum()

직관적으로 알 수 있듯이, sum()은 합을 반환합니다. (데이터 프레임에 적용하여 바로 값을 얻을 수도 있습니다.)

특이한 점은 문자열의 경우도 연산이되어 인덱스순으로 연결된 문자열을 반환합니다.

 

7. count()

df[column].count()

해당 컬럼에 null 값이 아닌 데이터의 갯수를 반환합니다.

 

8. unique(), nunique()

df[column].unique() # 1
df[column].nunique() # 2

unique()의 경우 해당 컬럼에 저장된 데이터의 종류가 무엇있는지 중복하지 않고 반환합니다. nuique()는 몇종류인지를 숫자로 반환합니다.

반응형