1. 기초 데이터 통계 계산
데이터 분석의 첫걸음 바로 데이터의 성질을 파악하는 것입니다. 어떤 데이터가 담겨 있는지, 평균이나 합계가 어떻게 되는지, 고유값의 개수는 몇 개인지 등을 살펴보면서 분석 방향을 설정하는 것이 중요합니다. 파이썬의 pandas 라이브러리를 활용하면 이러한 기본 통계 정보를 간단한 코드로 쉽게 확인이 가능합니다.
1) describe() 함수
- describe()는 데이터의 전체적인 통계 요약을 한눈에 확인할 수 있는 함수입니다. 데이터프레임에서 숫자형(int, float 등) 컬럼을 중심으로 주요 통계 지표들을 출력합니다.
- 예를 들어, int64의 데이터 타입을 가진 항목들이 있다면, describe()를 통해 개수(count), 평균(mean), 표준편차(std), 최솟값(min), 사분위수(25%, 50%, 75%), 최댓값(max) 등을 한 번에 확인할 수 있습니다
- 분석 시작하기 전에 꼭 한 번은 실행해보시는 것을 추천드립니다.
df.describe()
2) 그룹화(GroupBy) 데이터 평균 계산
(1) 1차 그룹화: 하나의 기준으로 그룹화
- "서울시 지하철호선별 역별 승하차 인원 정보" 파일을 기준으로, 사용일자별로 승차 총승객수의 평균값을 구하고 싶다면 다음과 같은 방식으로 코드를 작성합니다.
df.groupby("사용일자")
- 먼저 사용일자를 기준으로 데이터 그룹화를 진행했습니다.
- 그다음, 각 그룹에서 "승차총승객수" 컬럼의 평균값을 구하는 방식입니다.
df.groupby("사용일자")["승차총승객수"].mean()
반응형
(2) 2차 그룹화: 두 개 이상의 기준으로 그룹화
- 그룹화를 더 정교하게 하고 싶다면, 두 개 이상의 기준으로 그룹화할 수 있습니다.
- 예를 들어, 사용일자와 호선명으로 그룹화를 진행한 후, 승차총승객수와 하차총승객수의 평균값을 구하는 코드는 다음과 같습니다.
df.groupby(["사용일자", "호선명"])
- 먼저 사용일자와 호선명으로 그룹화를 하면 위의 값과 같이 출력됩니다.
- 이제 여기에 사용일자별, 호설별로 나뉜 각 그룹에서 승차총승객수와 하차총승객의 평균값을 구해보겠습니다.
- 괄호 위치와 개수에 유의해서 작성하는 것이 좋습니다.
# 승차총승객수의 평균값
df.groupby(["사용일자", "호선명"])["승차총승객수"].mean()
# 승차총승객수와 하차총승객수의 평균값
df.groupby(["사용일자", "호선명"])[["승차총승객수", "하차총승객수"]].mean()
3) 그룹화 데이터 개수 세기
- 데이터를 그룹화한 뒤에는 단순히 평균뿐만 아니라 개수를 세는 작업도 필요합니다. pandas에서는 다양한 방식으로 고윳값 개수, 특정 값의 빈도, 전체 데이터 수 등을 셀 수 있습니다.
(1) nunique(): 고유값의 개수
- nunique()은 고유한 값(unique value)의 개수를 세는 함수입니다.
- 여기에서 n은 개수를 의미합니다.
- 예를 들어, 호선별로 존재하는 역의 개수를 알고 싶다면 다음과 같이 작성할 수 있습니다.
df.groupby("호선명")["역명"].nunique()
(2) value_counts(): 각 값의 빈도수
- value_counts()는 특정 컬럼에 어떤 값이 얼마나 있는지 개수를 세어줍니다.
- 각각의 값의 개수를 구해주는 것입니다.
- 예를 들어, 호선별로 그룹화한 후, 각 역명이 몇 번 등장했는지를 알고 싶을 때 유용합니다.
df.groupby("호선명")["역명"].value_counts()
(3) count(): 전체 개수 세기
- count()는 특정 컬럼에 비어 있지 않은 값의 개수를 세어줍니다. 즉, NaN을 제외한 값의 개수입니다.
- 예를 들어, 호선별로 그룹화한 후, 역명 컬럼의 데이터 개수를 구할 때는 다음과 같은 코드를 사용합니다.
df.groupby("호선명")["역명"].count()
이처럼 pandas에서는 데이터를 요약하고 분석하는 데 필수적인 다양한 함수들을 제공합니다. describe()로 전반적인 통계를 확인하고, groupby()를 활용해 그룹별 평균이나 개수를 계산함으로써 데이터에 대한 인사이트를 얻을 수 있습니다.
데이터 분석은 결국 '어떤 질문을 던지느냐'와 '그 질문을 코드로 어떻게 풀어내느냐'의 싸움입니다. 기초 통계와 그룹화 함수부터 차근차근 익혀나가며 분석 실력을 키워보세요!
감사합니다:-)
'데이터 분석 > Python' 카테고리의 다른 글
pandas (5) : 데이터프레임 생성, 데이터프레임 필터링 / 주피터 노트북 (0) | 2025.02.13 |
---|---|
pandas(4) : 데이터(시리즈, 데이터프레임) 생성, 시리즈 데이터 필터링, 시리즈 연산, 내림차순, 올림차순 (0) | 2025.02.12 |
pandas (2) : 데이터 추출 방법 정리 / 주피터 노트북 (0) | 2025.02.10 |
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb1 in position 0: invalid start byte 해결방법 (0) | 2025.02.07 |
pandas 기초 (1) : 데이터 프레임, pandas 패키지 불러오기, 데이터 불러오기, 데이터 확인 / 주피터 노트북 (0) | 2025.02.07 |