본문 바로가기

공부/판다스(Pandas)

Pandas를 활용한 데이터 탐색 방법(데이터 조회, 인덱싱, 슬라이싱, 결측값 처리)

 

데이터 탐색은 데이터 분석 과정에서 가장 기본적이면서도 중요한 단계입니다. 이 과정에서 Pandas를 사용하면 데이터를 효과적으로 조회하고, 요약하며, 결측값을 처리할 수 있습니다. 이번 블로그 글에서는 데이터 탐색의 핵심적인 기능들을 Pandas 라이브러리를 사용하여 다루어 보겠습니다.

1. 데이터 조회 및 요약

1.1 데이터 조회 (head(), tail())

데이터를 처음 불러왔을 때, 전체 데이터를 확인하기에는 너무 방대한 경우가 많습니다. 이때 head()와 tail() 메서드를 사용하여 상위 혹은 하위 몇 개의 데이터를 간략하게 확인할 수 있습니다.

import pandas as pd

# CSV 파일을 읽어 데이터프레임으로 변환
df = pd.read_csv('data.csv')

# 데이터 상위 5개 행 확인
print(df.head())

# 데이터 하위 5개 행 확인
print(df.tail())

 

코드 설명:

  • pd.read_csv()는 CSV 파일을 읽어 Pandas의 데이터프레임으로 변환합니다.
  • head()는 상위 5개 데이터를, tail()은 하위 5개 데이터를 반환합니다. 괄호 안에 숫자를 넣어 표시할 행 수를 조절할 수 있습니다.

1.2 데이터 요약 (describe(), info())

describe() 메서드는 수치형 데이터에 대해 주요 통계 정보를 제공합니다. 이를 통해 평균, 표준편차, 최소/최대값 등을 빠르게 파악할 수 있습니다. info()는 데이터프레임의 기본 정보를 출력합니다.

# 데이터 요약 통계
print(df.describe())

# 데이터프레임의 전체적인 정보
print(df.info())

 

코드 설명:

  • describe()는 각 열의 주요 통계치를 계산해 줍니다.
  • info()는 데이터프레임의 구조, 각 열의 데이터 유형, 결측값 여부 등을 확인할 수 있습니다.

 

2. 데이터 인덱싱과 슬라이싱

데이터의 특정 부분만 선택하여 작업하는 경우가 많습니다. Pandas는 다양한 방식으로 데이터를 인덱싱하고 슬라이싱할 수 있습니다.

2.1 열 선택

데이터프레임의 특정 열을 선택할 때는 열 이름을 대괄호([ ])로 감싸 사용합니다.

# 특정 열 선택
print(df['column_name'])

 

코드 설명:

  • df['column_name']은 특정 열만 선택하여 출력합니다.

2.2 행 선택 (iloc, loc)

행을 선택할 때는 iloc (정수 기반 인덱싱)과 loc (이름 기반 인덱싱)을 사용합니다.

# iloc을 사용한 행 선택 (정수 인덱스)
print(df.iloc[0])  # 첫 번째 행 출력

# loc을 사용한 행 선택 (인덱스 이름 기반)
print(df.loc[0])   # 첫 번째 행 출력

 

코드 설명:

  • iloc[]은 행 번호를 기준으로 데이터를 선택합니다.
  • loc[]은 데이터프레임의 인덱스 이름을 기준으로 데이터를 선택합니다.

 

3. 결측값 처리

결측값은 데이터 분석에서 흔히 발생하는 문제입니다. Pandas는 결측값을 쉽게 처리할 수 있는 여러 가지 방법을 제공합니다.

3.1 결측값 확인

먼저 결측값이 있는지 확인하기 위해 isnull()과 sum()을 사용할 수 있습니다.

# 각 열의 결측값 수 확인
print(df.isnull().sum())

 

코드 설명:

  • isnull()은 각 셀의 결측 여부를 확인하고, sum()을 통해 결측값의 개수를 열별로 합산합니다.

3.2 결측값 채우기 (fillna())

결측값을 특정 값으로 대체하거나 평균값 등으로 채울 수 있습니다.

# 결측값을 0으로 대체
df_filled = df.fillna(0)

# 결측값을 각 열의 평균값으로 대체
df_filled_mean = df.fillna(df.mean())

 

코드 설명:

  • fillna()를 사용해 결측값을 0 또는 평균값으로 대체합니다.

3.3 결측값 제거 (dropna())

필요에 따라 결측값이 포함된 행이나 열을 제거할 수도 있습니다.

# 결측값이 있는 행 제거
df_dropped = df.dropna()

# 결측값이 있는 열 제거
df_dropped_col = df.dropna(axis=1)

 

코드 설명:

  • dropna()는 결측값이 있는 행 또는 열을 제거합니다. axis=1은 열을 기준으로 제거하겠다는 의미입니다.

 

결론

이번 포스팅에서는 Pandas를 활용하여 데이터를 탐색하는 기본적인 방법을 살펴보았습니다. 데이터프레임의 일부를 조회하고, 요약 정보를 통해 데이터를 파악하며, 인덱싱과 슬라이싱으로 특정 데이터를 선택할 수 있습니다. 마지막으로 결측값을 처리하는 방법도 알아보았습니다. 다음 글에서는 Pandas를 활용한 데이터 변형 및 분석 방법을 다루어보겠습니다.