데이터프레임 탐색은 데이터의 특성과 구조를 파악하는 과정입니다. 이를 통해 데이터의 크기, 내용, 분포 등을 확인하고, 데이터처리의 필요성을 판단합니다. 이번 섹션에서는 Seab 라이브러리에서 제공하는 tips 데이터셋을 이용하여 데이터프레임을 탐색하는 방법에 대해 알아보겠습니다.
# 라이브러리 불러오기
seaborn as sns
import pandas as pd
import numpy as np
# 데이터 불러오기
tips = sns.load_dataset("tips")
데이터 일부 확인 및 크기 확인
데이터를 처음 불러왔을 때, head() 함수나 tail() 함수를 이용해 상위 혹은 하위 일부 데이터를 확인합니다.
# 상위 5개 데이터 확인
display(tips.head())
# 하위 5개 데이터 확인
display(tips.tail())
# 데이터프레임의 크기 확인 (행, 열)
print(f'데이터프레임 크기: {tips.shape}')
열, 행 정보 보기
데이터프레임의 열 이름, 인덱스 정보, 각 열의 데이터 타입 등을 확인합니다.
# 열 이름 확인
print(f'열 이름: {tips.columns}')
# 인덱스 정보 확인
print(f'인덱스 정보: {tips.index}')
# 각 열의 데이터 타입 확인
print(f'데이터 타입: \n{tips.dtypes}')
정렬해서 보기
데이터를 특정 열의 값에 따라 오름차순 혹은 내림차순으로 정렬할 수 있습니다
# total_bill 열을 기준으로 오름차순 정렬
display(tips.sort_values(by='total_bill'))
# total_bill 열을 기준으로 내림차순 정렬
display(tips.sort_values(by='total_bill', ascending=False))
sort_value의 기본값은 ascending=True이며 이는 오름차순이고 False로 설정하면 내림차순으로 정렬됩니다.
기본 집계
데이터의 개수, 합계, 평균, 최댓값, 최솟값 등의 기본적인 통계치를 확인합니다.
# 각 열의 개수 확인
print(f'데이터 개수: \n{tips.count()}')
# 각 열의 합계 확인
print(f'합계: \n{tips.sum()}')
# 각 열의 평균값 확인
print(f'평균값: \n{tips.mean()}')
# 각 열의 최댓값 확인
print(f'최댓값: \n{tips.max()}')
# 각 열의 최솟값 확인
print(f'최솟값: \n{tips.min()}')
# 각 열의 중앙값 확인
print(f'중앙값: \n{tips.median()}')
# 각 열의 표준편차 확인
print(f'표준편차: \n{tips.std()}')
# day 열 최빈값 확인
print(f'데이터 개수: \n{tip['day'].mode()}')
# 전체 열 기준 합
tips.sum(axis=0)
# 전체 행 기준 합
tips.sum(axis=1)
axis를 이용하여 열을 기준으로 함수를 적용할지, 행을 기준으로 적용할지 설정할 수 있습니다.
기술 통계 확인
기술 통계(Descriptive Statistics)는 데이터의 정리, 요약, 해석, 표현 등을 통해 데이터가 갖는 특성을 나타내는 정보입니다. describe() 메서드를 사용하면 개수(count), 평균(mean), 표준편차(std), 최솟값(min), 사분위값(25%, 50%, 75%), 최댓값(max) 등의 기본 통계 정보를 확인할 수 있습니다.
# 전체 데이터에 대한 기술 통계 확인
display(tips.describe())
# 'tip' 열에 대한 기술 통계 확인
display(tips['tip'].describe())
# 'tip'과 'total_bill' 열에 대한 기술 통계 확인
display(tips[['tip', 'total_bill']].describe())
.T는 데이터프레임의 행과 열을 바꾸는 메서드입니다. 즉 전치(Transpose)를 수행합니다. 이를 이용하면, describe() 메서드의 결과를 더 보기 좋게 표현할 수 있습니다.
# 'tip'과 'total_bill' 열에 대한 기술 통계를 전치하여 확인
display(tips[['tip', 'total_bill']].describe().T)
'PYTHON > Pandas 판다스' 카테고리의 다른 글
[PYTHON] 데이터프레임 전처리 (열 이름 변경, 추가, 삭제) (0) | 2024.03.10 |
---|---|
[PYTHON] 데이터프레임 집계 (0) | 2024.03.10 |
[PYTHON] 데이터프레임 조회 (0) | 2024.03.10 |
[PYTHON] 데이터프레임 생성 (0) | 2024.03.01 |
[PYTHON] NUMPY 넘파이 (0) | 2024.03.01 |