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: objectint64는 정수형, 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.09.29 |
|---|---|
| JSON 파일 포맷 다루기 (0) | 2025.09.28 |
| Pandas로 Excel 파일 다루기 (0) | 2025.09.27 |
| Pandas로 CSV 파일 다루기 (0) | 2025.09.26 |
| Pandas란? 데이터 분석을 위한 필수 라이브러리 (0) | 2025.09.24 |