Series와 DataFrame의 차이 및 기본 생성 방법
Python의 데이터 분석 라이브러리인 Pandas는 데이터를 다루는 데 매우 유용한 도구입니다. Pandas의 핵심 객체로는 Series
와 DataFrame
이 있으며, 이 둘은 데이터 구조를 이해하는 데 필수적입니다. 이번 글에서는 Series
와 DataFrame
의 차이를 살펴보고, 기본적인 생성 방법을 예제와 함께 소개하겠습니다.
1. Series와 DataFrame의 차이
1.1 Series란?
Series
는 1차원 배열과 같은 구조로, 인덱스를 포함하는 데이터입니다. Python의 리스트나 NumPy 배열과 유사하지만, 인덱싱 기능이 추가되어 데이터 분석에 더욱 적합합니다.
Series 예제
import pandas as pd
# 리스트를 사용하여 Series 생성
s = pd.Series([10, 20, 30, 40], index=['a', 'b', 'c', 'd'])
print(s)
출력 결과:
a 10
b 20
c 30
d 40
dtype: int64
각 요소가 인덱스와 함께 저장되어 있으며, 이를 통해 특정 값을 쉽게 조회할 수 있습니다.
print(s['b']) # 20 출력
1.2 DataFrame이란?
DataFrame
은 2차원 표 형태의 데이터 구조로, 여러 개의 Series
가 열(column) 단위로 구성된 형태입니다. 행(row)과 열(column)으로 이루어져 있으며, 엑셀의 스프레드시트나 SQL의 테이블과 유사한 형태를 가집니다.
DataFrame 예제
# 딕셔너리를 사용하여 DataFrame 생성
data = {
'이름': ['Alice', 'Bob', 'Charlie'],
'나이': [25, 30, 35],
'도시': ['Seoul', 'Busan', 'Incheon']
}
df = pd.DataFrame(data)
print(df)
출력 결과:
이름 나이 도시
0 Alice 25 Seoul
1 Bob 30 Busan
2 Charlie 35 Incheon
각 열은 Series
로 구성되어 있으며, 열 이름과 행 인덱스를 가지고 있습니다.
2. Series와 DataFrame의 기본 생성 방법
2.1 Series 생성 방법
Series
는 리스트, 딕셔너리, NumPy 배열 등을 사용하여 생성할 수 있습니다.
리스트로 생성
s1 = pd.Series([1, 2, 3, 4, 5])
print(s1)
딕셔너리로 생성 (키가 인덱스로 사용됨)
data_dict = {'a': 100, 'b': 200, 'c': 300}
s2 = pd.Series(data_dict)
print(s2)
NumPy 배열로 생성
import numpy as np
s3 = pd.Series(np.array([10, 20, 30, 40]))
print(s3)
2.2 DataFrame 생성 방법
DataFrame
은 리스트, 딕셔너리, NumPy 배열, CSV 파일 등을 사용하여 생성할 수 있습니다.
리스트로 생성
data_list = [
[1, 'Alice', 'Seoul'],
[2, 'Bob', 'Busan'],
[3, 'Charlie', 'Incheon']
]
df1 = pd.DataFrame(data_list, columns=['ID', '이름', '도시'])
print(df1)
딕셔너리로 생성
data_dict = {
'ID': [1, 2, 3],
'이름': ['Alice', 'Bob', 'Charlie'],
'도시': ['Seoul', 'Busan', 'Incheon']
}
df2 = pd.DataFrame(data_dict)
print(df2)
DataFrame의 주요 속성
DataFrame을 이해하고 다루기 위해서는 몇 가지 중요한 속성을 알고 있어야 합니다. 여기에서는 shape
, dtypes
, columns
, index
등의 속성을 소개하겠습니다.
1. shape
(행과 열의 크기)
DataFrame의 행과 열의 개수를 확인할 수 있습니다.
print(df2.shape) # (3, 3)
출력 결과는 (행 개수, 열 개수)
형태로 나타납니다.
2. dtypes
(열의 데이터 타입)
각 열의 데이터 타입을 확인할 수 있습니다.
print(df2.dtypes)
출력 결과:
ID int64
이름 object
도시 object
dtype: object
int64
는 정수형, object
는 문자열을 나타냅니다.
3. columns
(열 이름 확인)
DataFrame의 열(column) 이름을 확인할 수 있습니다.
print(df2.columns)
출력 결과:
Index(['ID', '이름', '도시'], dtype='object')
4. index
(행 인덱스 확인)
DataFrame의 행(row) 인덱스를 확인할 수 있습니다.
print(df2.index)
출력 결과:
RangeIndex(start=0, stop=3, step=1)
5. info()
(데이터 요약 정보)
데이터프레임의 전체적인 정보를 확인할 수 있습니다.
print(df2.info())
출력 결과 예시:
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 ID 3 non-null int64
1 이름 3 non-null object
2 도시 3 non-null object
dtypes: int64(1), object(2)
memory usage: 200.0+ bytes
결론
이번 글에서는 Pandas의 기본적인 데이터 구조인 Series
와 DataFrame
의 차이를 설명하고, 각각의 생성 방법을 예제와 함께 살펴보았습니다. 또한, DataFrame
의 주요 속성들을 소개하여 데이터의 구조를 이해하는 데 도움을 주었습니다.
Pandas는 강력한 데이터 분석 기능을 제공하는 라이브러리이며, 이를 활용하면 다양한 데이터 분석 작업을 효율적으로 수행할 수 있습니다. 앞으로도 Pandas의 다양한 기능을 다루면서 데이터 분석에 익숙해지는 것이 중요합니다.
'Python Pandas' 카테고리의 다른 글
Pandas SQL 파일 포맷 다루기 (0) | 2025.02.05 |
---|---|
Pandas JSON 파일 포맷 다루기 (0) | 2025.02.04 |
Pandas로 Excel 파일 다루기 (0) | 2025.02.03 |
Pandas로 CSV 파일 다루기 (0) | 2025.02.02 |
Pandas란? 데이터 분석을 위한 필수 라이브러리 (0) | 2025.02.01 |