
데이터 분석을 시작한다면 거의 반드시 사용하게 되는 라이브러리가 바로 Pandas다.
CSV 파일을 불러오고, 데이터를 수정하고, 원하는 정보만 추출하는 등 대부분의 작업을 Pandas로 수행한다.
Pandas는 Python에서 데이터를 쉽고 빠르게 다룰 수 있도록 만들어진 라이브러리다.
엑셀처럼 행(Row)과 열(Column) 형태의 데이터를 다룰 수 있으며, 대용량 데이터도 효율적으로 처리할 수 있다.
대표적으로 다음과 같은 작업을 할 수 있다.
AI와 머신러닝에서는 데이터를 모델에 입력하기 전에 대부분 Pandas를 사용하여 데이터를 정리한다.
설치가 되어 있지 않다면 pip를 이용하여 설치할 수 있다.
pip install pandas
설치 후에는 다음과 같이 불러온다.
import pandas as pd
보통 pd라는 별칭(alias)을 사용한다.
Pandas에는 가장 중요한 두 가지 자료구조가 있다.
Series는 1차원 데이터이다.
리스트 하나를 관리한다고 생각하면 이해하기 쉽다.
import pandas as pd
score = pd.Series([90, 80, 100, 95])
print(score)
출력
0 90
1 80
2 100
3 95
dtype: int64
왼쪽 숫자는 Index, 오른쪽은 실제 데이터(Value)이다.
DataFrame은 2차원 테이블 형태의 데이터이다.
엑셀 시트와 거의 동일한 구조라고 생각하면 된다.
import pandas as pd
df = pd.DataFrame({
"이름": ["철수", "영희", "민수"],
"나이": [20, 22, 21],
"점수": [90, 85, 95]
})
print(df)
출력
이름 나이 점수
0 철수 20 90
1 영희 22 85
2 민수 21 95
실제 데이터 분석에서는 대부분 DataFrame을 사용한다.
가장 많이 사용하는 기능이다.
df = pd.read_csv("health.csv")
파일을 읽은 후에는 데이터를 확인해보자.
print(df)
또는
df.head()
head()는 기본적으로 상위 5개의 데이터를 보여준다.
반대로 마지막 데이터를 보고 싶다면
df.tail()
을 사용하면 된다.
데이터를 분석하기 전에 반드시 확인해야 하는 함수들이다.
데이터 크기를 확인한다.
df.shape
예시
(1000, 8)
→ 행이 1000개, 열이 8개라는 의미이다.
컬럼 이름을 확인한다.
df.columns
데이터 타입과 결측치를 확인할 수 있다.
df.info()
예시
RangeIndex: 1000 entries
Age int64
Gender object
Height float64
데이터 분석을 시작하기 전에 가장 많이 사용하는 함수 중 하나다.
숫자형 데이터의 통계를 확인한다.
df.describe()
결과에는 다음과 같은 정보가 포함된다.
df["Age"]
또는
df.Age
df[["Age", "Height"]]
df.iloc[0]
첫 번째 행을 가져온다.
df.iloc[0:5]
첫 번째부터 다섯 번째 행까지 가져온다.
예를 들어 나이가 30세 이상인 사람만 조회하고 싶다면
df[df["Age"] >= 30]
혈당이 120 이상인 사람만 찾는다면
df[df["Glucose"] >= 120]
조건을 여러 개 사용할 수도 있다.
df[(df["Age"] >= 30) & (df["Gender"] == "Male")]
BMI 컬럼을 만들어보자.
df["BMI"] = df["Weight"] / (df["Height"]/100)**2
이처럼 기존 데이터를 이용하여 새로운 컬럼을 쉽게 생성할 수 있다.
나이순으로 정렬
df.sort_values("Age")
내림차순 정렬
df.sort_values("Age", ascending=False)
결측치는 비어있는 데이터를 의미한다.
df.isnull().sum()
각 컬럼마다 결측치가 몇 개인지 확인할 수 있다.
예를 들어 환자 건강검진 데이터가 있다고 가정해보자.
| 이름 | 나이 | 혈압 | 혈당 |
|---|---|---|---|
| 김철수 | 28 | 120 | 95 |
| 이영희 | 45 | 135 | 118 |
| 박민수 | 61 | 148 | 132 |
Pandas를 이용하면
등의 작업을 몇 줄의 코드만으로 수행할 수 있다.
Pandas는 데이터 분석의 시작이라고 할 만큼 중요한 라이브러리다.
데이터를 불러오고, 원하는 데이터를 추출하고, 정리하는 대부분의 과정이 Pandas로 이루어진다.
다음 글에서는 탐색적 데이터 분석(EDA)을 통해 데이터를 어떻게 분석하고 숨겨진 패턴을 찾아내는지 알아보자.