pandas는 Python에서 데이터 분석과 조작을 위해 널리 사용되는 라이브러리입니다. 특히, DataFrame은 pandas의 핵심 데이터 구조로, 구조화된 데이터를 직관적이고 효율적으로 다룰 수 있게 해줍니다.
1. DataFrame의 정의
DataFrame은 행(row)과 열(column)로 구성된 2차원 데이터 구조입니다. 이를 테이블 형태로 생각하면 쉽습니다. 각 열은 특정 데이터 유형을 가지며, 행은 레이블로 식별됩니다.
주요 특징:
- 레코드 기반: 각 행은 레코드를 나타냅니다.
- 열 기반: 각 열은 데이터를 설명하는 속성을 나타냅니다.
- 레이블 지원: 행과 열 모두 레이블을 지정할 수 있어, 인덱스 및 컬럼명을 통해 데이터를 쉽게 접근 가능합니다.
2. DataFrame의 중요성
- 데이터 조작의 용이성: 복잡한 데이터 변환과 정리를 간단히 수행할 수 있습니다.
- 다양한 데이터 소스와 통합: CSV, Excel, SQL, JSON 등 다양한 형식의 데이터를 불러오거나 저장할 수 있습니다.
- 강력한 연산 지원: 데이터 필터링, 그룹화, 정렬 등 여러 기능을 효율적으로 제공합니다.
- 시각화와 통합: matplotlib 및 seaborn 같은 라이브러리와 쉽게 통합되어 데이터 시각화를 지원합니다.
3. DataFrame 정의 방법
pandas 라이브러리를 통해 DataFrame을 생성하는 방법은 다양합니다.
(1) 딕셔너리로 생성
import pandas as pd
data = {
'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'San Francisco', 'Los Angeles']
}
df = pd.DataFrame(data)
print(df)
#출력
Name Age City
0 Alice 25 New York
1 Bob 30 San Francisco
2 Charlie 35 Los Angeles
(2) 리스트로 생성
data = [
['Alice', 25, 'New York'],
['Bob', 30, 'San Francisco'],
['Charlie', 35, 'Los Angeles']
]
# 리스트로 생성시 컬럼명을 추가합니다.
df = pd.DataFrame(data, columns=['Name', 'Age', 'City'])
print(df)
(3) CSV 파일에서 로드
df = pd.read_csv('data.csv')
(4) SQL 쿼리 결과에서 로드
import sqlite3
conn = sqlite3.connect('example.db')
df = pd.read_sql_query("SELECT * FROM users", conn)
결국 테이블 형태의 데이터들은 모두 DataFrame으로 만들 수 있다는 것입니다.
4. DataFrame 사용하기
아래는 DataFrame을 탐색하기 위한 기본적인 메소드들입니다.
- df.head(n): 처음 n개의 행을 반환 (기본값은 5개).
- df.tail(n): 마지막 n개의 행을 반환.
- df.info(): DataFrame의 요약 정보 제공.
- df.describe(): 수치형 데이터에 대한 통계 요약.
예시:
print(df.head())
print(df.info())
print(df.describe())
#출력
Name Age Salary
0 Alice 25 50000
1 Bob 30 60000
2 Charlie 35 70000
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 3 entries, 0 to 2
Data columns (total 3 columns):
# Column Non-Null Count Dtype
--- ------ -------------- -----
0 Name 3 non-null object
1 Age 3 non-null int64
2 Salary 3 non-null int64
dtypes: int64(2), object(1)
memory usage: 204.0+ bytes
None
Age Salary
count 3.0 3.0
mean 30.0 60000.0
std 5.0 10000.0
min 25.0 50000.0
25% 27.5 55000.0
50% 30.0 60000.0
75% 32.5 65000.0
max 35.0 70000.0
다음 블로그에서는 DataFrame의 사용법에 대해서 조금 자세히 살펴보도록 하겠습니다.