Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Pandas로 시작하는 데이터 분석: Series와 DataFrame 완벽 가이드

이 튜토리얼에서는 Python의 대표적인 데이터 분석 라이브러리인 pandas를 활용해 데이터를 다루는 방법을 단계별로 살펴봅니다. pandas는 내부적으로 C 언어로 작성되어 있어 대용량 데이터를 처리할 때도 빠른 실행 속도를 자랑하며, 데이터 분석 분야에서 가장 널리 사용되는 라이브러리 중 하나입니다.

pandas에는 두 가지 핵심 데이터 구조가 있습니다. 바로 SeriesDataFrame입니다. 지금부터 하나씩 자세히 알아보겠습니다.

1. Series – 1차원 데이터 구조

Series는 인덱스(index)와 값(value)으로 구성된 1차원 배열입니다. pd.Series(data, index) 형태로 Series 객체를 생성할 수 있으며, 정수, 리스트, 딕셔너리 등 다양한 형태의 데이터를 입력으로 받을 수 있습니다.

기본 Series 생성하기

# pandas 라이브러리 임포트
import pandas as pd

# 데이터
data = [1, 2, 3]

# Series 객체 생성
# 인덱스를 지정하지 않으면 기본 인덱스(0, 1, 2...)가 자동으로 할당됩니다.
series = pd.Series(data)
print(series)

실행 결과

0    1
1    2
2    3
dtype: int64

커스텀 인덱스 사용하기

인덱스를 직접 지정하고 싶다면 아래 예제처럼 index 매개변수를 활용하면 됩니다.

# pandas 라이브러리 임포트
import pandas as pd

# 데이터
data = [1, 2, 3]

# 커스텀 인덱스
index = ['a', 'b', 'c']

# Series 객체 생성
series = pd.Series(data, index)
print(series)

실행 결과

a    1
b    2
c    3
dtype: int64

딕셔너리로 Series 만들기

딕셔너리를 Series 클래스에 전달하면 키(key)는 인덱스로, 값(value)은 실제 데이터로 자동 변환됩니다.

# pandas 라이브러리 임포트
import pandas as pd

# 딕셔너리 데이터
data = {'a': 97, 'b': 98, 'c': 99}

# Series 객체 생성
series = pd.Series(data)
print(series)

실행 결과

a    97
b    98
c    99
dtype: int64

인덱스로 데이터 접근하기

생성된 Series에서는 인덱스를 사용해 특정 값에 손쉽게 접근할 수 있습니다.

# pandas 라이브러리 임포트
import pandas as pd

# 딕셔너리 데이터
data = {'a': 97, 'b': 98, 'c': 99}

# Series 객체 생성
series = pd.Series(data)

# 인덱스를 이용해 데이터에 접근
print(series['a'], series['b'], series['c'])

실행 결과

97 98 99

2. DataFrame – 행과 열을 갖춘 2차원 데이터 구조

Series 사용법을 익혔다면, 이제 pandas의 또 다른 핵심 구조인 DataFrame을 살펴보겠습니다. DataFrame은 행(row)과 열(column)로 구성된 2차원 표 형태의 데이터 구조로, 실제 데이터 분석 업무에서 가장 많이 사용되는 형식입니다.

DataFrame은 리스트, 딕셔너리, Series 등 다양한 데이터 소스로 생성할 수 있습니다. 먼저 리스트를 이용한 생성 방법을 보겠습니다.

리스트로 DataFrame 만들기

# pandas 라이브러리 임포트
import pandas as pd

# 리스트 데이터
names = ['Tutorialspoint', 'Mohit', 'Sharma']
ages = [25, 32, 21]

# DataFrame 생성
data_frame = pd.DataFrame({'Name': names, 'Age': ages})

# DataFrame 출력
print(data_frame)

실행 결과

            Name  Age
0  Tutorialspoint   25
1           Mohit   32
2          Sharma   21

Series로 DataFrame 만들기

여러 개의 Series 객체를 묶어 하나의 DataFrame을 만들 수도 있습니다.

# pandas 라이브러리 임포트
import pandas as pd

# Series 객체들
_1 = pd.Series([1, 2, 3])
_2 = pd.Series([1, 4, 9])
_3 = pd.Series([1, 8, 27])

# DataFrame 생성
data_frame = pd.DataFrame({"a": _1, "b": _2, "c": _3})

# DataFrame 출력
print(data_frame)

실행 결과

   a  b   c
0  1  1   1
1  2  4   8
2  3  9  27

열 이름으로 데이터 접근하기

DataFrame에서는 열 이름(column name)을 사용해 특정 열 전체를 간편하게 조회할 수 있습니다.

# pandas 라이브러리 임포트
import pandas as pd

# Series 객체들
_1 = pd.Series([1, 2, 3])
_2 = pd.Series([1, 4, 9])
_3 = pd.Series([1, 8, 27])

# DataFrame 생성
data_frame = pd.DataFrame({"a": _1, "b": _2, "c": _3})

# 'a'라는 이름의 열 전체 출력
print(data_frame['a'])

실행 결과

0    1
1    2
2    3
Name: a, dtype: int64

마무리

지금까지 pandas의 두 가지 핵심 데이터 구조인 Series와 DataFrame의 생성 방법과 데이터 접근 방법을 살펴보았습니다. 이 두 구조만 제대로 이해해도 pandas를 활용한 데이터 분석의 절반 이상을 마스터한 것입니다. 다음 단계로는 데이터 필터링, 그룹화(groupby), 결측치 처리 등 더 심화된 기능을 학습해 보시기 바랍니다.

튜토리얼을 진행하면서 궁금한 점이 있다면 댓글로 남겨주세요!